设计原则

1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。


2.针对接口编程,而不是针对实现编程。


针对实现编程:

Dog d=new Dog();   //d是Dog的具体实现
d.bark();                  //
针对接口编程:
Animal animal=new Dog();  //利用animal进行多态调用
animal.makeSound();

3.多用组合(has-a),少用继承(is-a)。

使用组合不仅可将算法族封装成类,更可以“在运行时动态地改变行为”。


4.为了交互对象之间的松耦合设计而努力。

松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化,是因为对象之间的互相依赖降到最低。


5.类应该对扩展开放,对修改关闭。

允许类容易扩展,在不修改现有代码的情况下,就可搭配新的行为。

6.依赖倒置原则:要依赖抽象,不要依赖具体类。

当一个类A的具体实现会影响另一个类B,则B依赖A的具体实现。

这个原则说明了:不能让高层组件依赖低层组件,而且,不管高层或低层组件,“两者”都应该依赖于抽象。

“高层”组件:是由其他低层组件定义其行为的类。

你可能感兴趣的:(设计原则)