面向对象的设计原则(2):OCP

原创 2004年07月07日 22:05:00
太出名了,不再多谈。主要有两点
 (1) Open for extension
 (2) Closed for modification
 Robert.C.Martin举了一个Shape的例子来说明问题。关键的思想是,如果我们预测到了变化,就可以设计一个抽象来隔离它。但是无论模块是如何得"封闭",都会存在一些无法对之封闭得变化。这需要设计人员对于他设计得模块应该对那种变化封闭作出选择,他必须猜测出最有可能发生变化的种类。然后构造抽象来隔离。这种预测能力需要经验的积累!! 并且通常情况下都会猜测错误,怎么办,Martin给我们指出了一条道路:
 (1)只受一次愚弄
 我们愿意被第一颗子弹击中,然后我们会确保自己不再被同一支枪发射的任何子弹击中
 (2) 刺激变化:
 第一颗子弹来的越早、越快对我们越有利:首先编写测试,使用很短的迭代周期,尽早、经常的把软件展示给客户

 OCP是面向对象设计的核心所在,遵循这个原则可以带来巨大的好处,但是肆意的抽象同样不是一个好注意,拒绝不成熟的抽象和抽象本身一样重要!!!

设计模式六大原则之--开闭原则(OCP)

1.开闭原则:Open Closed Principle, OCP) 定义:Software entities like classes, modules and functions s...
  • benbenxiongyuan
  • benbenxiongyuan
  • 2014年04月18日 15:21
  • 1954

java设计六大原则之开闭原则(OCP)

抽象化是关键 定义抽象类或接口,使其可以有很多的具体实现(openfor extension) 预见所有的需要,在任何情况下都不再修改上层商业逻辑(closedfor modification) ...
  • u011659172
  • u011659172
  • 2016年05月26日 11:28
  • 2661

OCP与其他设计原则的关系

OCP:(开闭原则)可以在不必修改源代码的情况下改变这个模式的行为          用面向对象的语言来讲,不允许更改的是系统的抽象层,而允许扩展的是系统的实现层          抽象化是关键   ...
  • Demon_huirong
  • Demon_huirong
  • 2016年10月17日 10:48
  • 164

设计模式六大原则——开放封闭原则(OCP)

什么是开闭原则?       定义:是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。       开闭原则主要体现在两个方面:       1、对扩展开放,意味着有新的需求或变化时,可以...
  • u010853701
  • u010853701
  • 2014年04月30日 20:37
  • 3049

敏捷开发之原则 五大原则 SRP OCP LSP DIP ISP

一、面向对象设计原则内容来自《敏捷开发:原则、模式与实例》 SRP单一职责原则(Single Responsibility Principle): 就一个类而言,应该仅有一个引起它变化的原因。 ...
  • qq_16234613
  • qq_16234613
  • 2017年02月08日 22:04
  • 1484

设计模式六大原则例子(六)-- 开放封闭原则(OCP)例子

之前我们对设计模式的六大原则做了简单归纳,这篇博客是对开放封闭原则进行的举例说明。 开放封闭原则的意义软件实体应该对扩展开放,对修改关闭,其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已...
  • yabay2208
  • yabay2208
  • 2017年06月30日 11:53
  • 328

”OCP“原则与模块分离思想、MVC模式

“OCP”原则:“开—闭原则”,表示对软件扩展能力开放,对源代码修改关闭。 MVC模式:模型—视图—控制器。   MVC设计模式并不是经典的GOF的23个设计模式之中,不过我们却可以将MVC设计模...
  • LvCaiping
  • LvCaiping
  • 2015年06月03日 15:55
  • 295

连载:面向对象葵花宝典:思想、技巧与实践(31) - OCP原则

OCP,Open-Closed Principle,中文翻译为“开闭原则”。 当我第一次看到OCP原则时,我的感觉就是这原则也太抽象了吧,什么开,什么闭呢? 然后我去寻找更加详细的答案,最经典也是最常...
  • yah99_wolf
  • yah99_wolf
  • 2014年05月14日 09:36
  • 3709

软件设计的7大原则-自己的理解

选自javaweb软件工程设计七大原则。
  • fengchao2016
  • fengchao2016
  • 2017年01月23日 11:53
  • 445

OO的五大原则:SRP、OCP、LSP、DIP、ISP

OO的五大原则是指SRP、OCP、LSP、DIP、ISP。 SRP -- (Single Responsibility Principle 单一职责原则) OCP——开闭原则(Closed...
  • iflychenyang
  • iflychenyang
  • 2014年03月18日 15:37
  • 909
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象的设计原则(2):OCP
举报原因:
原因补充:

(最多只允许输入30个字)