您的位置:首页 > 运维架构

面向对象的设计法则3[Software Entities Should Be Open For Extension, Yet Closed For Modification ]

2011-07-26 12:00 239 查看

法则3:开放-封闭法则(OCP)

软件组成实体应该是可扩展的,但是不可修改的。

[ Software Entities Should Be Open For Extension, Yet Closed For Modification ]

开放-封闭法则

1.开放-封闭法则认为我们应该试图去设计出永远也不需要改变的模块。

2我们可以添加新代码来扩展系统的行为。我们不能对已有的代码进行修改。

3.符合OCP的模块需满足两个标准:

4.可扩展,即"对扩展是开放的"(Open For Extension)-模块的行为可以被扩展,以需要满足新的需求。

5.不可更改,即"对更改是封闭的"(Closed for Modification)-模块的源代码是不允许进行改动的。

6.我们能如何去做呢?

a.抽象(Abstraction)

b.多态(Polymorphism)

c.继承(Inheritance)

d.接口(Interface)
7. 一个软件系统的所有模块不可能都满足OCP,但是我们应该努力最小化这些不满足OCP的模块数量。

8.开放-封闭法则是OO设计的真正核心。

9.符合该法则便意味着最高等级的复用性(reusability)和可维护性(maintainability)。

单选法则

单选法则(the Single Choice Principle)是OCP的一个推论。

无论在什么时候,一个软件系统必须支持一组备选项,理想情况下,在系统中只能有一个类能够知道整个的备选项集合。

一些面向对象的设计法则:(Bob Tarr 著,outmyth 译)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: