一、设计原则
有7个设计原则,
分别是一个类只负责一项职责的单一职责原则
;
子类尽量不要重写父类的方法的里式替换原则
;
采用中间类减少类间通信迪米特法则
;
高层依赖于抽象,底层继承/实现抽象的依赖倒置原则
;
对扩展开放,对修改关闭的开闭原则
;
具体类不要实现无关接口中方法的接口隔离原则
;
尽量使用组合/聚合,而不是继承来达到复用目的的合成复用原则
。
二、设计模式
有3类模式,分别是创建型有4种、结构型有7种、行为型模式有12种
1、创建型(4种)
由一个工厂对象决定创建出哪一种产品类的实例的简单工厂模式
;
定义一个用于创建对象的接口,让子类决定实例化哪个类的工厂方法模式
;
整合了简单工厂和工厂方法模式的抽象工厂模式
;
将一个复杂对象的构建与它的表示分离的建造者模式
;
只有一个实例的单例模式
;
每拷贝一次都会创造一个新的实例的原型模式
。
2、结构型(7种)
把一个类的接口变换成客户端所期待的另一种接口的适配器模式
;
将抽象部分与它的实现部分分离,使它们可以独立地变化的桥接模式
;
将对象组合成树形结构以表示“部分-整体”的层次结构,它使得客户对单个对象和复合对象的使用具有一致性的组合模式
;
动态地给一个对象添加一些额外的职责的装饰模式
;
通过抽象高层的接口,以对客户端屏蔽子系统的复杂性,降低类之间复杂的依赖关系的门面模式;
运用共享技术有效地支持大量细粒度对象的享元模式
;
为其他对象提供一个代理以控制对这个对象的访问的代理模式
。
3、行为型(12种)
将处理器对象形成一条链,使请求经过这个链,每个处理器处理自己关注的点的责任链模式
;
将一个请求封装为一个对象,降低行为的请求者和行为的处理者之间耦合性的命令模式
;
被频繁使用的语言可用文法表示,需建立一个解释器来解释该语言中句子的解释器模式
;
迭代访问一个聚合对象中的各个元素,且不暴露该聚合对象内部表示的迭代器模式
;
使用中介对象将对象间的多对多的关系转换成一对多关系的中介者模式
;
定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖它的对象都得到通知并自动更新的观察者模式
;
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复先前保存的状态的备忘录模式
;
一个对象在多个状态下行为不同,且这些状态可以互相转换的状态模式
;
表示一个作用于某对象结构中的各元素的操作,可以在不改变各元素的类的前提下,定义作用于这些元素的新操作的访问者模式
;
将一批子类的公共算法骨架提取出来的模板方法模式
;
算法或策略需要经常替换的策略模式
;
负责判断和调用哪个实现类实例的委派模式
。