面向对象的设计法则3[Software Entities Should Be Open For Extension, Yet Closed For Modification ]
来源:互联网 发布:证券公司 网络金融 编辑:程序博客网 时间:2024/05/19 20:19
法则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 译)
- 面向对象的设计法则3[Software Entities Should Be Open For Extension, Yet Closed For Modification ]
- Bob Tarr:一些面向对象的设计法则(4):Open-Closed Principle
- 一些面向对象的设计法则(3)
- 一些面向对象的设计法则(3)
- 一些面向对象的设计法则(3)
- 面向对象的设计法则
- 一些面向对象的设计法则 2
- 一些面向对象的设计法则
- 面向对象设计/编程的四大法则
- 一些面向对象的设计法则
- 一些面向对象的设计法则
- 一些面向对象的设计法则(1)
- 一些面向对象的设计法则(2)
- 一些面向对象的设计法则(4)
- 一些面向对象的设计法则
- 一些面向对象的设计法则
- 一些面向对象的设计法则(1)
- 一些面向对象的设计法则(2)
- 面向对象的设计法则2[Program To An Interface, Not An Implementatio]
- 【带权中位数】科研先行(research)
- 编写完整的Content provider示例
- MSChart的使用与部署
- 2011-7-25 19:58:43
- 面向对象的设计法则3[Software Entities Should Be Open For Extension, Yet Closed For Modification ]
- 关于EXCEL隐私问题警告
- C#获取网页源代码的5种方法
- 自己写的一个解析运算式并得到结果的方法(最后是以Double型表示,中间是以BigDecimal计算中间结果的,临时起意写的,没有注释)
- C++BUILDER 下开发语音源码,转载
- (2011.07.26)以二进制方式读写文件(C++ Primer Plus)
- Titanium教程day4-控制真机方向
- 跨平台编程资源,c & c++开发
- WORD中快速回到上次编辑处