设计模式之前言

  注意:本文集是参考《大话设计模式》和《HeadFirst 设计模式》这两本书所做的总结,如果看过这两本书的同学,请跳过,如果想要这两本书的资源请滴我。

软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

  设计模式包括 23 种,其中按照目的来分可分为创建型模式、结构型模式和行为型模式 3 种。
  (1)创建型模式:用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。GoF 中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。
  (2)结构型模式:用于描述如何将类或对象按某种布局组成更大的结构,注重于类和对象的组合,GoF 中提供了代理、适配器、桥接、装饰、外观、享元、组合等 7 种结构型模式。
  (3)行为型模式:用于描述类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,以及怎样分配职责,用于类之间的通信。GoF 中提供了模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录、解释器等 11 种行为型模式。

  由于本文集会有很多UML图,所以不懂的同学先看UML类图的基本用法:
基本用法

  java中类的六种关系如下:
  (1) 继承关系:指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。
  (2) 实现关系: 一个class类实现interface接口,每个子类可以提供自己的实现。
  (3) 依赖关系: 指的是一个类中使用了另一个类,这种关系是非常弱的,是一个类以参数的形式存在于另一个类的方法中。
  (4) 关联关系 : 指的是一个类以属性的形式存在于另一个类中。
  (5) 聚合关系 : 聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享,比如家庭和孩子
  (6) 组合关系 : 组合也是关联关系的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。比如人体和大脑。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容