六大设计原则
-
单一职责
There should never be more than one reason for a class to change.
-
里氏替换原则
父类可以用的地方子都可以用(有不同功效),子可用的地方父不一定可用。
-
依赖倒置
高层模块和底层模块都应该依赖其抽象,实现依赖抽象-面向接口编程
-
接口隔离
建立单一接口, 不要建立臃肿庞大的接口 。要求“尽量使用多个专门的接口”
-
迪米特法则
只和最亲近的类接触,对自己需要调用的类知道的越少越好
-
开闭原则
对扩展开放,对修改关闭
二十三种设计模式
-
单例模式
一个类只有一个实例
-
工厂方法模式
建一个方法,生产对象
-
抽象工厂模式
建一个抽象类/接口,生产对象
-
模板方法模式
建一个抽象类/接口,为以后的实现画格子
-
建造者模式
在对象的构建过程中,根据不同的情况构造出同一个类的不同的对象来
-
代理模式
A有一个保姆,照顾它
-
原型模式
实现clone方法,每次拷贝出原型来,再修改
-
中介者模式
中介者是和外界通讯的类,传声筒。感觉和代理类似。
-
命令模式
把请求封装成对象,然后发送出去
-
责任链模式
一件事多个流程,每个流程都可以拒绝和传递
-
装饰模式
对成绩单的滤镜,装饰出亮点,作大会报告
-
策略模式
定义出不同套策略,内封不同动作,打出一套组合拳
-
适配器模式
插销转换器
-
迭代器模式
实现iteration接口,从头到尾
-
组合模式
对象里面套对象
-
观察者模式
旁观者,被观察者动作后去通知观察者
-
门面模式
小组内和外部联系的中介者,话事人
-
备忘录模式
为对象的某个状态备个份
-
访问者模式
访问者模式只能看到访问者看到的,RBAC
-
状态模式
对象生命周期分为几个状态,每个状态为一个对象
-
解释器模式
定义自己的运算符,自己的值,然后进行解释运算
-
享元模式
多个重复对象可以考虑共享
-
桥梁模式
把抽象和实现解耦,相当于建一个半抽象连接抽象和具体实现