设计模式6原则

设计模式6原则

ref

https://www.cnblogs.com/dolphin0520/p/3919839.html

1 SRP

单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。

一个类 不能太“累”,承载的指责要少,以此来减少对其他职责的运行影响。

实现高内聚、低耦合的指导方针

2 OCP

开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。

保证了原有的系统这个抽象层相对稳定,我们可以做快速的增量改变,不修改已有的代码。

3 LSP

里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。

在软件中,将一个父类替换为他的子类,程序将不会出现任何异常。反过来不成立:如果一个组件
使用的子类,那么它不一定能使用基类对象。

里氏代换是实现开闭原则的重要方式之一:针对基类编程,运行时确定子类。

4 DIP

依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。

5. ISP

接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。

每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干

6. LoD

迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。

迪米特法则又称为最少知识原则(LeastKnowledge Principle, LKP)

迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关系。

迪米特法则还有几种定义形式,包括:不要和“陌生人”说话、只与你的直接朋友通信等,在迪米特法则中,对于一个对象,其朋友包括以下几类:

  (1) 当前对象本身(this);

 (2) 以参数形式传入到当前对象方法中的对象;

  (3) 当前对象的成员对象;

  (4) 如果当前对象的成员对象是一个集合,那么集合中的元素也都是朋友;

  (5) 当前对象所创建的对象。

  任何一个对象,如果满足上面的条件之一,就是当前对象的“朋友”,否则就是“陌生人”。在应用迪米特法则时,一个对象只能与直接朋友发生交互,不要与“陌生人”发生直接交互,这样做可以降低系统的耦合度,一个对象的改变不会给太多其他对象带来影响。

  迪米特法则要求我们在设计系统时,应该尽量减少对象之间的交互,如果两个对象之间不必彼此直接通信,那么这两个对象就不应当发生任何直接的相互作用,如果其中的一个对象需要调用另一个对象的某一个方法的话,可以通过第三者转发这个调用。简言之,就是通过引入一个合理的第三者来降低现有对象之间的耦合度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值