软件编程原则
1.单一职责原则 2.开闭原则(对扩展开,对修改闭) 3.里氏替换原则(子类型能完全替换基类) 4.依赖倒置原则(抽象不应该依赖细节,细节应该依赖抽象) 5.接口隔离原则(不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于他所在的类层次结构)
创建型模式(对象的创建和使用分离)
1.工厂模式:(解耦、职责分离)
1.1. 简单工厂模式:根据入参创建对应实例(违背开闭原则)
1.2.工厂方法模式:具体创建实例交由具体工厂子类实现(扩展时,需要创建的类较多)
1.3.抽象工厂:一个工厂类可以创建多个不同类型的实例(违背开闭原则、违背单一职责原则)
2.建造者模式:分步建造一个完整实例
3. 单例模式:整个上下文有且仅有一个实例
4.原型模式:通过clone复用实例
结构型模式
类结构型模式:一般基于继承和实现实现类的组合
对象结构型模式:一般基于组合和关联实现对象的组合
1.适配器模式:通过适配(被适配类不可修改)实现类的复用(加深调度栈)
2.桥接模式:通过实现和抽象的分离实现桥接,是一种对象结构模式。更多是在架构初期使用。(加大编程复杂度)
3.装饰模式:通过装饰类动态地为目标类增加额外职责
4.外观模式:系统入口有且只有一个(该入口会成为瓶颈)
5.享元模式:通过共享实现对象复用。构成有享元工厂、享元池
6.代理模式:通过代理实现对目标类的控制
7.组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构
行为型模式
类行为型模式:
对象行为型模式:
1.命令模式:通过封装命令,实现请求命令与执行命令的解耦
2.中介者模式:对象之间的通信通过中介者中转而不是直接通信(中介者会成为瓶颈,实现难度大)
3.观察者模式:一个实例状态发生改变时,其相关依赖对象会被通知自动更新。构成有:观察者、观察目标(观察目标会成为瓶颈)
4.状态模式:通过改变实例的状态改变其行为
5.策略模式:封装可互相替换的策略
6.责任链模式:链条上的每个实例都有机会处理链条上的数据
7.解释器(解析)模式:
8.迭代模式:
9.备忘录模式:
10.模板方法模式:基类定义实现模板,子类实现各自的逻辑
11.访问者模式:算法和数据结构分离