设计模式的六大原则是我们在程序设计中所要遵守的原则,想要精通设计模式必须先明白这六大原则。
设计模式六大原则:
一.开闭原则(总纲):
- 核心思想:一个软件实体如类,模块和函数应该对修改封闭,对扩展开放
- 优点:可复用性,可维护性
- 注意:
- 通过接口或者抽象类约束扩展,对扩展进行边界限定,不允许出现在接口或抽象类中不存在的public方法
- 参数类型、引用对象尽量使用接口或者抽象类,而不是实现类
- 抽象层尽量保持稳定,一旦确定即不允许修改
二.单一职责原则:
- 核心思想:应该有且仅有一个原因引起类的变更
- 优点:
- 可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;
- 提高类的可读性,提高系统的可维护性;
- 变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
三.里氏替换原则:
- 核心思想:子类应该可以完全替换父类,在继承使用时,只扩展新功能,而不破坏父类原有功能
- 优点:
- 里氏替换原则是实现开闭原则的重要方式之一。
- 它克服了继承中重写父类造成的可复用性变差的缺点。
- 它是动作正确性的保证。即类的扩展不会给已有的系统引入新的错误,降低了代码出错的可能性。
- 加强程序的健壮性,同时变更时可以做到非常好的兼容性,提高程序的维护性、可扩展性,降低需求变更时引入的风险。
四.依赖倒转原则:
- 核心思想:高层模块不应该依赖底层模块,二者都应该依赖于抽象,抽象不应该依赖细节,细节应该依赖抽象
- 说明:高层模块就是调用端,底层模块就是具体实现类,抽象就是指接口或抽象类,细节就是实现类
- 优点:
- 依赖倒置原则可以降低类间的耦合性。
- 依赖倒置原则可以提高系统的稳定性。
- 依赖倒置原则可以减少并行开发引起的风险。
- 依赖倒置原则可以提高代码的可读性和可维护性。
五.迪米特法则:
- 核心思想:类间解耦,一个类不应该知道自己操作类的细节,换句话说,只和朋友谈话,不和朋友的朋友谈话
- 优点:
- 降低了类之间的耦合度,提高了模块的相对独立性。
- 由于亲合度降低,从而提高了类的可复用率和系统的扩展性。
六.接口隔离原则:
- 核心思想:类间的依赖关系应该建立在最小的接口上
- 通俗来讲:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。也就是说,我们要为各个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。
总括来说:开闭原则告诉我们对扩展开放,修改封闭,尽可能的不去修改,有变化添加新的类模块;单一职责告诉我们类职责要单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒转原则告诉我们通过接口实现类模块间独立,面向对象接口编程;迪米特告诉我们:类间解耦,降低耦合;接口隔离原则告诉我们:设计接口要精简单一,细化专用接口