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

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

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

面向对象的5个设计原则

在面向对象中,类是基本单位,各种设计都是围绕着类来进行的。可以说,类与类之间的关系,构成了设计模式的大部分内容。经典的设计模式有23种,学习设计模式推荐GOF经典以及《敏捷软件开发——原则、方法与实践...
  • CollinPeng
  • CollinPeng
  • 2017年02月12日 23:07
  • 203

【JAVA】面向对象设计七个原则

程序是为需求服务的,需求无时无刻都有可能变更,最好一开始就依托一套优秀原则来设计程序,以下介绍面向对象设计的七个原则。...
  • u011704894
  • u011704894
  • 2016年01月20日 14:28
  • 1270

unity开发程序设计原则(七大面向对象设计原则)

七大面向对象设计原则开闭原则:面对需求,对程序的改动是通过增加新代码进行的,而不是改变原来的标题 依赖倒转原则:高层模块不应该依赖底层模块,两个都应该依赖与抽象;抽象不应该依赖于细节,细节应该依赖于抽...
  • qq_34244317
  • qq_34244317
  • 2017年09月02日 15:57
  • 219

面向对象设计原则总结

参考博文:http://www.cnblogs.com/shaosks/category/351488.html 面向对象设计的原则主要有:单一职责原则,开放封闭原则,里氏替换原则,依赖倒置原则,迪米...
  • hehewjt
  • hehewjt
  • 2016年11月02日 17:19
  • 651

面向对象设计的五个基本原则

面向对象的3个基本要素:封装、继承、多态 面向对象的5个基本设计原则: 单一职责原则(Single-Resposibility Principle)     其核心思想为:一个类,最...
  • rankun1
  • rankun1
  • 2016年03月03日 16:32
  • 2673

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

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

面向对象的五大设计原则

一:开——闭原则(OCP) 含义:一个软件实体应当对扩展开放,对修改关闭。 二:单一职责原则(SRP) 含义:就是对一个类而言,应该仅有一个引起变化的原因。 所以在构造对象时,应该将对象的不同职责分离...
  • li2327234939
  • li2327234939
  • 2016年12月28日 17:15
  • 570

OCP与其他设计原则的关系

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

简述SOLID的面向对象的设计原则

在这篇博文中,将给大家简要介绍一下SOLID的面向对象的设计与实现的基本原则。其实这个需要自己做项目和看代码的体会,个人经验觉得还是比较有用的。 什么是SOLID SOLID是面向对象设计与实现的...
  • leoleocs
  • leoleocs
  • 2015年04月29日 18:45
  • 1025

面向对象的六大原则(推荐)收藏

  面向对象的六大原则(推荐)要把软件做得非常灵活又要便于维护是一个很困难的事情。灵活的软件他的结构就复杂,维护起来就困难。有得必有失,关键就在于如何处理这两者,使得大于失。软件的设计开发应遵循以下六...
  • wangjunkg
  • wangjunkg
  • 2009年01月12日 19:26
  • 8711
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象的设计原则(2):OCP
举报原因:
原因补充:

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