zhanggao / learnNotes

2 stars 2 forks source link

设计模式-合(创建型、行为型、结构型) #1

Open zhanggao opened 4 years ago

zhanggao commented 4 years ago

设计模式-创建型

  1. 单例:保证该类只有一个实例,并提供全局的访问点。
  2. 简单工厂:提供一个通用的创建接口,根据传入的类型参数创建不同的实例,不对外暴露创建细节。
  3. 工厂方法:定义一个创建对象的接口,具体实现由子类实现。
  4. 抽象工厂:提供一个接口用于创建一个对象家族。FactoryA创建ProductA0和ProductA1;FactoryB创建ProductB0和ProductB1。
  5. 生成器:也叫Builder模式,封装一个对象的创建过程,按照步骤构建
  6. 原型模式:通过复制对象来创建对象。
zhanggao commented 3 years ago

设计模式-行为型

  1. 责任链:使多个对象都有机会处理请求,调用端将请求给A,A处理不了就给B,B处理不了就给C。 命令:
  2. 解释器:
  3. 迭代器:提供一个顺序访问集合元素的方法,同时又不暴露集合的内部实现。
  4. 中介者:引入一个中介来让各对象之间交互,各对象之间不需要互相引用,从而松耦合,并且可以独立的改各对象。
  5. 备忘录:在不违反规则的情况下获取对象内部的状态,从而在需要时可以恢复对象的状态。
  6. 观察者:定义一个一对多关系,当被观察的对象变化时通知所有观察者。
  7. 状态:
  8. 策略:定义并封装一系列算法使它们可以相互替代互换。
  9. 模板方法:定义一个操作算法的骨架,将一些实现延迟到子类,子类可以重新定义算法的某些步骤而不用改算法骨架。
  10. 访问者:
  11. 空对象:
zhanggao commented 3 years ago

设计模式-结构型

  1. 适配器:将一个类转成用户希望的另一个接口,使两个接口不兼容的类可以一起工作。主要解决将老系统的一些类放到新系统中,老系统的类不满足新系统的接口。
  2. 桥接:将抽象与实现解耦分离开来,使他们可以独立变化。主要解决继承带来的爆炸问题,扩展不灵活。
  3. 组合:
  4. 装饰:动态的给一些实体类增加一些额外的功能。假设有一个画正方形和画圆形的实体类,然后有一个画红色图形的装饰类,这个画红色图形的装饰类既可以装饰画正方形的实体类,又可以装饰画圆形的实体类。
  5. 外观:提供一个统一的接口用来访问子系统中的一系列接口。假设看电影需要开CD机、音响、显示器,然后提供一个统一的接口一次性开所有设备。
  6. 享元:利用共享的方式大量的细粒度的对象,这些对象一部分内部状态是相同的,还可以有一些不同的外部状态。主要用来避免创建大量对象。
  7. 代理:为其它对象提供一个代理,用来控制这个对象的访问。