设计模式中的原则

近阶段在研读设计模式,设计模式中最重要的一部分就是设计原则,单独将这一部分拿出来深入探讨和研究

0、开闭原则

修改关闭,拓展开放。

当程序需要变化满足新需求的时,尽量不要在原有基础上修改,而是拓展程序;便于程序的维护、拓展和升级;使用接口和抽象类可以满足这样的需求。

1、单一职责原则

每个类应该实现单一的原则。

如果类包含了多个功能职责,就应该把类进行拆分,避免出现因某一个功能需要修改导致整个类变更情况。我们希望改动的地方影响范围越小越好。

2、里式替换原则(Liskov Substitution Principle LSP)

任意的基类都可以由他的子类来替换。

只有当子类替换基类,且功能不受影响的时候,在子类中可以任意拓展新的行为。基类是与外界进行直接交流的,子类最好不要修改基类方法的结构和定义,因为一旦修改之后,外界可能无法使用。

3、依赖倒转原则

面向接口编程,依赖于抽象而不依赖于具体。

在写代码的时候,尽量与接口或者抽象类进行交互,具体的实现放在子类中;即使有功能变更或者拓展,对使用接口的地方来说也是透明的、无感知的。

4、接口隔离原则(Interface Segregation Principle)

一个类对另一个类的依赖应建立在最小的原则之上。

不应该强迫子类实现他们不需要的方法,如果有,应该把接口进行拆分。多个功能接口合成一个大的接口,不如单个接口单个功能。这里就对应了上面的“单一职责原则”,不同方法混合的接口,是对接口的污染。要保持最小接口。

5、最少知道原则(又叫迪米特法则 Demeter Principle)

只和直接朋友交谈,不要和陌生人说话。(talk only to your immediate friends)

一个类应该对其他的类尽可能少的了解。每个类尽可能减少对其他类的依赖,能够降低类之间的耦合度,使类与类之间不存在或者存在很少的依赖关系。比如A和B认识,B和C认识,如果A想要和C通话,按照迪米特法则,应该由B来充当传话筒,这样就会有很多的非业务方法存在;或者创建一个C的接口父类D,A与接口父类D通信,不和具体实现C通信;也减少了依赖关系。

6、合成复用原则

在一个新的对象里面使用已有对象,使之成为新对象的一部分,新对象通过老对象达到复用的原则。

尽量使用合成/聚合,不要使用继承关系。将已有对象变成新对象的成员对象,新对象不需要知道老方法是如何实现和操作的,即使老对象进行了修改或者拓展也不会对新对象有所影响。新对象可以选择性的使用老对象中的方法,灵活度较高,耦合度也低。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值