"开-闭"原则

本文介绍了软件设计中的开闭原则,即软件实体应对扩展开放而对修改关闭。文章探讨了这一原则带来的灵活性与稳定性,并提出了实现该原则的具体方法,如里氏代换原则、依赖倒转原则等。

    所谓开闭原则,Open-Closed Principle 讲的是一个软件实体应当对扩展开放,对修改关闭。满足开闭原则的系统具有两个无可比拟的优越性:

  • 通过扩展已有系统,可以提供新的行为,以满足新的需求,这使得变化中的软件系统具有一定的适应性和灵活性。

  • 已有的软件模块,特别是重要的抽象层模块不能修改,这使得变化中的软件具有一定的稳定性和延续性。

怎样做到开闭原则?

    抽象化是关键。做到“开闭原则“不是一件简单的事情,但有很多规律可循。这些规律有同样以设计原则的身份出现,但它们都是”开闭“原则的手段和工具。

  1. 里氏代换原则。任何基类可以出现的地方,子类一定可以出现。是开闭原则的补充。基类与子类的继承关系就是抽象化得具体体现,所以里氏代换原则是实现抽象化具体步骤的规范。

  2. 依赖倒转原则。要依赖于抽象,不要依赖于实现。要想实现开闭原则,就要坚持依赖倒转。

  3. 聚合复用原则。尽量使用聚合,而不是继承关系达到复用。

  4. 迪米特法则。一个软件实体应当尽可能少的与其他实体发生相互作用

  5. 接口隔离原则。应当为客户端提供尽量小的单独接口,而不是提供大的总接口。显然,迪米特法则和接口隔离原则,会使软件系统在功能扩展时,不会将修改的压力传递到其他的对象上。


转载于:https://my.oschina.net/u/2603877/blog/596901

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值