1.单一职责:一个类只负责一项职责。如类A负责来个不同职责:职责1,职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1,A2;(类职责单一,方法职责单一)
2.接口隔离:一个类对另一个类的依赖应该建立在最小接口上。把接口拆分,来实现接口隔离。
3.依赖倒置:抽象不应该依赖细节,细节应该依赖抽象(面向接口编程);依赖传递方式:接口传递、构造方法传递、setter方法传递
4.里氏替换:不要重写继承自父类的方法,而是父类与子类都继承更通俗的基类,原有的继承关系去掉,采用依赖,聚合,组合;引用基类的方法必须能透明的使用其子类
5.开闭原则:对拓展开放,对修改关闭 ocp
6.迪米特原则:最少知道原则(只与直接朋友通信,直接朋友,成员变量,方法返回值,参数),别把别人的方法写到自己的类中
7.合成复用原则:尽量使用合成,聚合,不使用继承