设计模式的七大原则

设计模式的七大原则

目的:使程序高内聚、松耦合,以及可维护性,可扩展,重用性和灵活性。

一、单一职责

每个类只实现同一项职责。

批注:相当于保持每个类是一项职责的元类。如果类中方法少,可以在类中的方法里实现单一职责,降低了元类中if判断,把类相对独立化。

二、接口隔离

最小接口法则;

每个实现类都能实现了接口的全部方法。

三、依赖倒置

高层模块不应该依赖低层模块,都应该依赖于抽象(接口或抽象类),尤其是低层一定要依赖抽象。

面向对象,以抽象为基础搭建架构,细节再依赖抽象 实现。

批注:高层抽象,底层具体实现。

变量的声明类型尽量是抽象类或接口,这样就存在一个缓冲层,有利于程序扩展和优化

依赖传递的三种方式

1)接口传递

2)构造方法

3)setter方法传递

四、里式替换

所有引用基类的地方必须能透明地使用其子类的对象。就是子类尽量不要重写父类的方法。

继承方法重写导致多态复杂性,可以通过增加更加基础的基类,去除原来的继承关系,采用依赖、聚合或组合的关系替代。

五、开闭原则(核心ocp)

用抽象构建框架,用实现扩展细节

提供方的扩展开放,使用方修改关闭。

批注:新增功能通过扩展实现,而不是通过修改实现。

六、迪米特方法(最少知道原则:只与直接的朋友通信)

降低类之间的耦合。

对自己依赖的类知道的越少越好。

批注:对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部,对外除了提供public方法,不对外泄露任何信息。

直接的朋友:出现在成员变量、方法参数、方法返回值中的类。出现在局部变量中的类不是直接朋友。

七、合成复用原则

尽量使用合成/聚合的方式,而不是使用继承。

批注:能使用合成或聚合方式实现的,就不采用继承方式。

八、总结:设计原则核心思想

1)针对接口编程,而不是针对实现编程

2)把应用中可能变化之处,独立出来,不与不需要变化的代码混合在一起。

3)为了交互对象之间的松耦合设计而努力

你可能感兴趣的:(设计模式的七大原则)