目录
Single Responsibility Principle
2、里氏替换原则liskov substitution principle
3、依赖倒置原则dependence inversion principle
4、接口隔离原则interface segregation principle
7、合成复用原则Composite Reuse Principle
1、单一责任原则
Single Responsibility Principle
一个类或者一个方法只负责一项职责,尽量做到类的只有一个行为原因引起变化;、
降低类之间的耦合性。
比如责任链模式:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。
2、里氏替换原则
liskov substitution principle
子类可以扩展父类的功能,但不能改变原有父类的功能;
(目的:增强程序的健壮性)实际项目中,每个子类对应不同的业务含义,使父类作为参数,传递不同的子类完成不同的业务逻辑。
具体实例理解:
23种设计模式-里氏替换原则_俺是农村的的博客-CSDN博客_使用里氏替换原则解决实际问题23种设计模式-里氏替换原则https://blog.csdn.net/qq_32923295/article/details/124518947
Java设计模式(4:里氏替换原则和合成复用原则详解 - wh蔡小明 - 博客园
3、依赖倒置原则
dependence inversion principle
面向接口编程;(通过接口作为参数实现应用场景),抽象就是接口或者抽象类,细节就是实现类
意思是上层模块不应该依赖下层模块,两者应依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象;
通俗点就是说变量或者传参数,尽量使用抽象类,或者接口;
比如我们的回调
Java通过接口实现回调_yizhesong的博客-CSDN博客一、思路Java通过接口来实现CallBack 操作步骤1.class A,class B,MyCallBack 接口2.class A实现接口MyCallBack 对应的方法X3.class B拥有一个参数为callback接口类型的方法Y(MyCallBack callback)4.class A中的Z方法,运行时调用class B中Y方法,以自身传入参数5.class B已取得A,就可以随时回调A所实现的MyCallBack 接口中的X方法二、具体实现步骤MyCallBack 接口phttps://blog.csdn.net/yizhesong/article/details/111464962
4、接口隔离原则
interface segregation principle
建立单一接口;(扩展为类也是一种接口,一切皆接口)
定义:
a.客户端不应该依赖它不需要的接口;
b.类之间依赖关系应该建立在最小的接口上;
简单理解:复杂的接口,根据业务拆分成多个简单接口;(对于有些业务的拆分多看看适配器的应用)
【接口的设计粒度越小,系统越灵活,但是灵活的同时结构复杂性提高,开发难度也会变大,维护性降低】
具体实例:
5、迪米特原则
law of demeter
又叫作最少知识原则(The Least Knowledge Principle),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解, 尽量降低类与类之间的耦合。简写: LOD
6、开闭原则
open closed principle
软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的
装饰着模式是完美的体现
7、合成复用原则
Composite Reuse Principle
··在面向对象设计中,可以通过两种方法在不同的环境中复用已有的设计和实现,即通过组合/ 聚合关系或通过继承。
但首先应该考虑使用组合/聚合,组合/聚合可以使系统更加灵活,降低 类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少;
其次才考虑继承,在使用继承时,需要严格遵循里氏代换原则,有效使用继承会有助于对问题的理解,降低复杂度,而滥用继承反而会增加系统构建和维护的难度以及系统的复杂度,因此需要慎重使用继承复用。