JAVA设计模式的六大原则

开闭原则(总则)

规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。

我的理解:只增不改。无论是类、方法,都尽可能的增加新的,不改变旧的。

单一职责原则

它规定一个类应该只有一个发生变化的原因。
谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。

我的理解:其实就是解耦合,不是有一句话叫能力越大责任越大吗?当一个类具有的职责越多,那么要改变他的原因也会增加。所以规范让一个类只具有一个发生变化的原因,这样能够尽可能的降低耦合度

里氏替换原则(Liskov Substitution Principle)

主张使用“抽象(Abstraction)”和“多态(Polymorphism)”将设计中的静态结构改为动态结构,维持设计的封闭性。
“抽象”是语言提供的功能。
“多态”由继承语义实现。
任何基类可以出现的地方,子类一定可以出现。

我的理解:子类既然是继承着基类,那么子类一定是具有基类的全部特性的

依赖倒转原则(Dependence Inversion Principle)

程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。
B.抽象不应该依赖于具体,具体应该依赖于抽象。

我的理解:通俗的讲就是我们都依赖于我们的共性,而不应该是我们的共性依赖与我们。

接口隔离原则(Interface Segregation Principle)

客户端不应该依赖它不需要的接口。一个类对另一个类的依赖应该建立在最小的接口上。
使用多个专门的接口比使用单一的总接口要好。
一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。

我的理解:各尽其责,不要把一个学数学的老师安排去教体育。

合成复用原则(Composite Reuse Principle)

要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。

我的理解:继承的话会让耦合性增加,父类每添加一个方法,子类都会对应增加。所以能够通过组合的方式来实现的方法就尽可能的组合。就好比组合是一个 2+2+2的消耗,继承则可能是 2×2 ×2的消耗。

迪米特法则(Demeter Principle)

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


在这里插入图片描述

发布了101 篇原创文章 · 获赞 125 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_34691097/article/details/103995500