设计模式的七种设计原则

1. 计算机相关专业的同学们应该都有过设计模式这门课,但是过去几年了,因为工作需要,所以最近在重新复习。以下是根据尚硅谷来的韩顺平图解java设计模式来总结的。个人觉得这个韩老师讲得非常透彻,以此做出总结和大家分享一下。

2. 七大设计原则:单一职责原则、接口隔离原则、依赖倒转倒置原则、里氏替换原则、开闭原则、迪米特法则、合成复用原则

3. 单一职责原则(表示一个模块的组成元素之间的功能相关性)

1) SRP 是一个简单又直观的原则,但是在实际编码的过程中很难将它恰当地运用,需要结合实际情况进行运用。

2) 降低类的复杂度,一个类只负责一项职责。

3) 提高了代码的可读性,提高系统的可维护性。

4) 通常情况下,我们应当遵守单一职责原则 ,只有逻辑足够简单,才可以在代码级违反单一职责原则。只有类中方法数量足够少,可以在方法级别保持单一职责原则。

4. 接口隔离原则(一个类对另一个类的依赖应该建立在最小的接口上)

1) ISP的思想在于建立单一接口,尽可能地去细化接口,接口中的方法尽可能少。

2) 客户端不应该依赖它不需要的接口。

如图:将接口Interface1 拆分为独立的几个接口,类 A 和类 C 分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。

5. 依赖倒转倒置原则(使用接口或抽象类制定好规范,把展现细节的任务交给他们的实现类去完成)

1) DIP,低层模块尽量都要有抽象类或接口,或者两者都有,程序稳定性更好。

2) 变量的声明类型尽量是抽象类或接口 , 这样我们的变量引用和实际对象间,就存在一个缓冲层,利于程序扩展和优化。

6. 里氏替换原则(重点在不影响原功能,而不是不覆盖原方法)

1) LSP,子类可以扩展父类的功能,但不能改变父类原有的功能。

2) 通用的做法是:原来的父类和子类都继承一个更通俗的基类,原有的继承关系去掉,采用依赖,聚合,组合等关系代替。

7. 开闭原则(用抽象构建框架,用实现扩展细节)

1) OCP 可以具有良好的可扩展性,可维护性。

2) 尽可能地不要修改已经写好的代码,而是去扩展它。

8. 迪米特法则(尽量的将逻辑封装在类的内部)

1) LOD降低类之间的耦合。

2) 只要求降低对象间耦合关系,并不是要求完全没有依赖关系。

9. 合成复用原则(尽量使用合成聚合的方式,而不是使用继承)

1) 如果直接继承基类,会破坏封装,因为继承将基类的实现细节暴露给子类;如果基类的实现发生了改变,则子类的实现也不得不改变;从基类继承而来的实现是静态的,不可能在运行时发生改变,没有足够的灵活性。

2) CRP在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分; 新的对象通过向这些对象的委派达到复用已有功能的目的。

 

1. 尚硅谷图解Java设计模式资料下载

2. 如果需要看demo,可以参考:设计模式之七大基本原则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值