1.
2.
八大设计原则:
1.依赖倒置原则:
1)高层模块(稳定)不应该依赖于低层模块(变化),二者应该都依赖于抽象(稳定);
2)抽象(稳定)不应该依赖于实现细节(变化),实现细节(变化)应该依赖于抽象(稳定)。
2.开闭原则:
1)对扩展开放,对修改关闭。
2)类模块应该是可扩展的,但是不可修改。
3.单一职责原则:
1)一个类应该仅有一个引起它变化的原因。
2)变化的方向隐含着类的责任。
4.里氏替换原则:
1)子类必须能够替换基类(IS - A)。
2) 继承表达类型抽象。
5.接口隔离原则:
1)不要强迫客户依赖它们不需要的方法。
2)接口应该小而完备。
实现思想就是 不要把所有 的方法都public出去,有些方法写成私有。因为你一旦都public出去,就有可能导致客户对它产生依赖。当你改这个方法的时候就会对依赖它的客户产生影响。
6.优先使用对象组合而不是类继承:
1)类继承是“白箱操作” ,使用对象组合是“黑箱操作”
2)继承在某种程度上破坏了封装性,子类父类耦合度高。
3)对象组合只要求被组合对象有良好定义的接口,耦合度低。
7.封装变化点:
1)封装一般认为是封装数据和代码,但是封装还有更高层面上的应用就是封装变化点,一侧变化,一侧不会受到影响。
8.针对接口编程,而不是针对实现编程。
1)不将变量类型声明为某个具体类型,而是声明为某个接口(这并不绝对,比如String,Vector,int这些不可避免的要用,但是比如说我要用到各种形状,那么我用Shape编程,而不是用具体的Circle或者Rect编程,这个原则其实跟依赖倒置原则比较相辅相成。)。
2)客户不需要知道对象的类型,只需要知道对象所具有的接口。
3)减少系统中各部分的依赖关系,从而实现高内聚,松耦合。
产业强盛的标识:接口标准化。