参考菜鸟
设计模式的六大原则
- 开闭原则(Open Close Principle)
对扩展开放,对修改关闭。 需要使用接口和抽象类。 - 里氏代换原则(Liskov Substitution Principle)
任何基类可以出现的地方,子类一定可以出现。基类与子类的继承关系就是抽象化的具体实现,是对实现抽象化的具体步骤的规范。 - 依赖倒转原则(Dependence Inversion Principle)
这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。 - 接口隔离原则(Interface Segregation Principle)
使用多个隔离的接口,比使用单个接口要好。(降低类之间的耦合度)强调降低依赖,降低耦合。 - 迪米特法则,又称最少知道原则(Demeter Principle)
一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。 - 合成复用原则(Composite Reuse Principle)
尽量使用合成/聚合的方式,而不是使用继承。
创建型 模式 | - 关注对象的构建 |
---|---|
* 构造器模式 | 类似构造函数,依据一定的模板创建相互独立的对象 |
* 原型模式 | 相比 Builder 可以实现相同公用的部分独立到同一块内存(原型对象) |
* 工厂模式 | 返回莫一种产品对象的实例 封装了创建对象的逻辑 |
* 抽象工厂模式 | 不直接产生对象实例 |
* 建造者模式 Builder | 关注细节与过程 复杂对象 构建层 和 表示层 分离 |
* 单例模式 | 只会实例化一个对象 |
结构型模式 | - 关注 继承 |
---|---|
* 装饰器模式 | 对已有对象扩展 切片式编程 |
* 适配器模式 | 不同的接口包装成同一套接口 |
* 代理模式 | 避免目标对象直接被操作 |
* 桥接模式 | 独立变化的部分 进行组合 |
* 组合模式 | 树形结构 |
* 迭代器模式 | 不暴露对象整体 |
* 外观模式 | |
* 享元模式 | |
* 模块模式 | 模块化 |
* 职责链模式 |
行为型模式 | - 关注 通信 | 实际操作 |
---|---|---|
* 策略模式 | 将一系列算法封装出来 | 通过 映射 来减少条件语句的使用 |
* 观察者模式 | 主体 注册观察者,变化通知观察者 | |
* 发布订阅模式 | 对 观察者 解耦;通过消息通道隔开 | |
* 命令模式 | 发布者、接收者、命令对象 | |
* 模板方法模式 | ||
* 状态模式 | ||
* 调解器模式 | ||
* 迭代子模式 | ||
* 责任链模式 | ||
* 备忘录模式 | ||
* 状态模式 | ||
* 访问者模式 | ||
* 中介者模式 | ||
* 解释器模式 |