设计模式

设计模式有三大类

  • Creational Patterns:
  1. 抽象工厂模式:通过接口创建关联的或者独立的对象,而不是指定具体的类
  2. 建造者模式:分离复杂对象的结构,使相同的构造产生不同的表现形式
  3. 工厂方法模式:定义创建对象的接口,让子类决定实例化的类,推迟了实例化为子类
  4. 原型模式:指定多种类使用原型实例创建,通过复制这些原型类创建新的对象
  5. 单例模式:确保一个类只有一个实例,提供一个全局点来访问它
  • Structural Patterns:
  1. 适配器模式:转换类的接口为客户需要的接口,让不兼容的接口连接起来
  2. 桥模式:从实现中解耦出抽象,使他们相互独立
  3. 组合模式:把对象组合成树状结构来表示部分和整体等级,使客户一样的看待组合的和个体对象
  4. 装饰着模式:动态的添加额外的责任给对象,给子类提供了灵活的可选性和函数扩展性
  5. 外观模式:提供子系统一系列接口的统一接口,提供了一个更高级的接口使子系统更容易使用
  6. 享元模式:使用共享去有效的支持大量的细粒度的对象
  7. 代理模式:提供一个代理或占位符让另一个对象控制访问它
  • Behavioral Patterns:
  1. 责任链模式:避免发送者和接收者耦合, 给更多的对象机会来处理请求,链接接受的对象,通过链接传递请求直到对象被处理
  2. 命令模式:封装请求对象,因此用不同的请求、队列、日志请求参数化客户端,并且支持做不了的操作
  3. 解释器模式:给一种语言,定义它的语法表示和解释器,使用这种表示来解释这种语言的语句
  4. 迭代器模式:提供方法去访问连续的集合对象的元素不暴露它底层的表示
  5. 中介者模式:定义一个对象,它封装了一系列对象的相互作用。中介者通过阻止对象互相明确的引用来促进松耦合,让你改变他们独立的交互
  6. 纪念物模式:不违背封装,捕获和外化对象内部状态,所以对象可以稍后恢复到这个状态
  7. 观察者模式:定义一个一对多的依赖,所以当一个对象状态改变,所有它依赖的对象会被通知和自动更新
  8. 状态模式:允许一个对象当它的内部状态改变的时候,改变它的行为,这个对象将看起来像改变了它的类型
  9. 策略模式:定义算法的家族,封装每一个,让它们可交换的,策略让算法独立的改变从使用的客户端
  10. 模型方法模式:在操作方法里面定义算法骨架,推迟一些子类的步骤,让子类重新定义算法特定的步骤而不改变算法的结构
  11. 访问者模式:表示一个操作将要执行在对象结构的元素,让你定义一个新的操作不改变它操作元素的类
  1. 开闭原则
  2. 里氏代换原则
  3. 依赖倒转原则
  4. 接口隔离原则
  5. 迪米特法则,又称最少知道原则
  6. 合成复用原则