1、创建型模式
作用: 在创建者模式中,客户端不再负责对象的创建与组装,而是把这个对象创建的责任交给其具体的创建者类,把组装的责任交给组装类,客户端只负责对象的调用,明确了各个类的职责。
- 简单工厂模式(Simple Factory)
- 工厂方法模式(Factory Method)
- 抽象工厂模式(Abstract Factory)
- 创建者模式(Builder)
- 原型模式(Prototype)
- 单例模式(Singleton)
2、结构型模式
结构型模式是解析类和对象的内部结构和外部组合,通过优化程序结构解决模块之间的耦合问题。
- 外观模式/门面模式(Facade门面模式)
- 适配器模式(Adapter)
- 代理模式(Proxy)
- 装饰模式(Decorator)
- 桥梁模式/桥接模式(Bridge)
- 组合模式(Composite)
- 享元模式(Flyweight)
3、行为型模式
为型模式涉及到算法和对象间职责的分配,行为模式描述了对象和类的模式,以及它们之间的通信模式,行为模式刻划了在程序运行时难以跟踪的复杂的控制流可分为行为类模式和行为对象模式。
- 模板方法模式(Template Method)
- 观察者模式(Observer)
- 状态模式(State)
- 策略模式(Strategy)
- 职责链模式(Chain of Responsibility)
- 命令模式(Command)
- 访问者模式(Visitor)
- 调停者模式(Mediator)
- 备忘录模式(Memento)
- 迭代器模式(Iterator)
- 解释器模式(Interpreter)
三者之间的区别和联系
创建型模式提供生存环境,结构型模式提供生存理由,行为型模式提供如何生存。
- 创建型模式为其他两种模式使用提供了环境。
- 结构型模式侧重于接口的使用,它做的一切工作都是对象或是类之间的交互,提供一个门。
- 行为型模式顾名思义,侧重于具体行为,所以概念中才会出现职责分配和算法通信等内容。
设计原则
- 开闭原则: 对扩展开放,对修改关闭
- 里氏转换原则: 子类继承父类,单独完全可以运行
- 依赖倒转原则: 引用一个对象,如果这个对象有底层类型,直接引用底层类型
- 接口隔离原则: 每一个接口应该是一种角色
- 合成/聚合复用原则: 新的对象应使用一些已有的对象,使之成为新对象的一部分
- 迪米特原则: 一个对象应对其他对象有尽可能少的了解
原文链接:
https://blog.youkuaiyun.com/qq422431474/article/details/76049045
https://github.com/jiayisheji/blog/issues/2