设计模式七大设计原则

目录

1、单一责任原则

Single Responsibility Principle

2、里氏替换原则liskov substitution principle

3、依赖倒置原则dependence inversion principle

4、接口隔离原则interface segregation principle

5、迪米特原则law of demeter 

6、开闭原则open closed 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

··在面向对象设计中,可以通过两种方法在不同的环境中复用已有的设计和实现,即通过组合/ 聚合关系或通过继承。

    但首先应该考虑使用组合/聚合,组合/聚合可以使系统更加灵活,降低 类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少;

        其次才考虑继承,在使用继承时,需要严格遵循里氏代换原则,有效使用继承会有助于对问题的理解,降低复杂度,而滥用继承反而会增加系统构建和维护的难度以及系统的复杂度,因此需要慎重使用继承复用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值