设计模式的设计原则

单一职责原则(S)

定义:一个类,只有一个引起它变化的原因。即:应该只有一个职责
理解:仅有一个引起类变化的原因;避免相同的职责分散到不同的类中;一个类只承担一项职责
优点:
1、减少类之间的耦合:当需求变化时,只修改一个类,从而隔离了变化带来类对其他职责的影响
2、提高类的复用性:按需引用,一个类负责一个职责,需求的变动只需要修改对应的类或增加某一职责
3、降低类的复杂度:职责单一,功能分散开降低一个类多个职责类的复杂度

开放封闭原则(O)

定义:一个模块在扩展行为方面应该是开放的而在更改性方面应该是封闭的
理解:增加新功能模块的时候不用修改原先的代码,直接新增代码就好
优点:
1、能够提高系统的可扩展性和可维护性
2、模块的行为是可扩展的,可以方便的对现有模块的行为/功能进行扩展
3、对于模块行为的扩展不会/较小的影响现有系统/模块

里氏代替原则(L)

定义:子类型必须能够替换掉它们的父类型,并出现在父类能够出现的任何地方
理解:任何出现基类的地方都可以替换成子类并且客户端程序不会改变基类行为或者出现异常和错误,反之不行
里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范

迪米特法则(L)

一个模块或对象应尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立,这样当一个模块修改时,影响的模块就会越少,扩展起来更加容易
最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立

接口隔离原则(I)

定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上
不要让一个单一的接口承担过多的职责,而应把每个职责分离到多个专门的接口中,进行接口分离
这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合
我们在代码编写过程中,运用接口隔离原则,一定要适度,接口设计的过大或过小都不好。对接口进行细化可以提高程序设计灵活性是不挣的事实,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。设计接口的时候,只有多花些时间去思考和筹划,就能准确地实践这一原则

依赖倒置原则(D)

定义:高层模块不应该依赖与底层模块,二者都应该依赖于抽象;抽象不应该依赖与细节,细节应该依赖于抽象
中心思想是面向接口编程,这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。
高层模块不应该依赖于底层模块,而应该依赖于抽象。抽象不应依赖于细节,细节应依赖于抽象。应该面向接口编程,不该面向实现类编程。面向实现类编程相当于就事论事,那是正向依赖;面向接口编程,相当于透过现象看本质,抓住事务的共性,那就是反向依赖,即依赖倒置

合成复用原则

在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分
新对象通过向这些对象的委派达到复用已用功能的目的。简单地说,就是要尽量使用合成/聚合,尽量不要使用继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值