java 设计模式7大原则

分类,便于记忆

总纲:开闭原则

要求功能单一,尽量分割:单一职责原则,接口隔离原则

父类和子类,高层和底层的抽象关系:里氏替换原则,依赖倒置原则(高层对底层抽象)

类实体之间的关系:合成复用原则,迪米特法则(最少知识原则)

 

1.开闭原则

软件实体应当对扩展开放,对修改关闭

可以通过“抽象约束、封装变化”来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。
 

2.里氏替换原则

子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。

如果通过重写父类的方法来完成新的功能,这样写起来虽然简单,但是整个继承体系的可复用性会比较差,特别是运用多态比较频繁时,程序运行出错的概率会非常大。
 

3.依赖倒置原则

高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。

通过要面向接口的编程来降低类间的耦合性

java 设计模式7大原则_第1张图片

 

4.单一职责原则

核心就是控制类的粒度大小、将对象解耦、提高其内聚性。降低类的复杂度。一个类只负责一项职责,其逻辑肯定要比负责多项职责简单得多。

 

5.接口隔离原则

要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。将臃肿庞大的接口分解为多个粒度小的接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性。

 

6.迪米特法则(最少知识原则)

如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。从依赖者的角度来说,只依赖应该依赖的对象。从被依赖者的角度说,只暴露应该暴露的方法。

 

7.合成复用原则

它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。通过将已有的对象纳入新对象中,作为新对象的成员对象来实现的,新对象可以调用已有对象的功能,从而达到复用。

 

总结:

这 7 种设计原则是软件设计模式必须尽量遵循的原则,各种原则要求的侧重点不同。

开闭原则是总纲,它告诉我们要对扩展开放,对修改关闭;

里氏替换原则告诉我们不要破坏继承体系;

依赖倒置原则告诉我们要面向接口编程;

单一职责原则告诉我们实现类要职责单一;

接口隔离原则告诉我们在设计接口的时候要精简单一;

迪米特法则告诉我们要降低耦合度;

合成复用原则告诉我们要优先使用组合或者聚合关系复用,少用继承关系复用。

 

参考:

面向对象设计原则

 

 

 

你可能感兴趣的:(设计模式)