关闭

大话设计模式-第04章 考研求职两不误-开放封闭原则

标签: 开放封闭原则面向对象技术
252人阅读 评论(0) 收藏 举报
分类:

04 考研求职两不误-开放封闭原则

    开放-封闭原则(The Open-Closed Principle)或叫开-闭原则。

        principle |ˈprɪnsəpl| noun 原则、行为准则

    开放-封闭原则,就是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。这个原则其实是有两个特征,一个是说‘对扩展是开放的(Open for extension)’,另一个是说‘对于更改是封闭的(Closed for modification)’。

        extension |ɪkˈstenʃn| noun 扩建、扩展

    怎样的设计才能面对需求的改变却可以保持相对稳定,从而使的系统可以在第一个版本以后不断推出新的版本?kaifang-封闭给我们答案。

   任何问题都考虑的到是不可能的,开放封闭原则的意思是说,你设计的时候,时刻要考虑,尽量让这个类是足够好,写好了就不要去修改,如果新需求来,我们增加一些类就完事了,原来的代码能不动则不动。

    无论模块是多么的‘封闭’,都会存在一些无法对之封闭的变化。既然不能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。

    我们很难预先猜测,但我们却可以在发生小变化时,就及早去想办法应对发生更大变化的可能。也就是说,等到变化发生时立即采取行动。

    在我们最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。

    面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。这就是‘开放-封闭原则’的精神所在。


    开放封闭原则是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所生成的巨大好处,也就是可维护、可扩展、可复用、灵活性好。开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象,然而,对于应用程序中的每部份都可以进行抽象同样不是一个好主意。拒绝不成熟的抽象和抽象本身一样重要。


0
0
查看评论

大话设计模式四:开放封闭原则(考研求职两不误)

开放-封闭原则: 对扩展时开放的,对修改是封闭的。面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码         开发人员应该仅对程序中频繁变化的那些部分作出抽象,然而,对于程序中的每个部分都刻意地进行抽象也不是个好办法。
  • zdp072
  • zdp072
  • 2013-09-04 21:12
  • 620

《大话设计模式》--男人和女人--访问者模式<Visitor>(28)

V:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 访问者模式适用于数据结构相对稳定的系统。它把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由地演化。 访问者模式的目的是要把处理从数据结构分离出来。有比较稳定的数...
  • lovegonghui
  • lovegonghui
  • 2015-06-15 15:45
  • 488

第4章 考研求职两不误 开放-封闭原则 大话设计模式

第4章 考研求职两不误----开放-封闭原则 4.1 考研失败        “…多少次迎着冷眼与嘲笑.从没有放弃过心中的理想,一刹那恍惚,若有所失的感觉。不知不觉己变淡心里爱(谁明白我)…”小菜此时正关在房中坐在桌前发呆,音箱中大声地放着BCyOAd乐队...
  • u012605629
  • u012605629
  • 2014-12-12 15:15
  • 544

《大话设计模式》之--第4章 考研求职两不误----开放-封闭原则

《大话设计模式》带给我一种全新的神奇的学习方式和思维,相比较GOF的《设计模式》而言,这本书更易于理解。鉴于目前网上的PDF大都是对本书拍照,而非文档,所以读起来很不清晰,也不能复制粘贴,因此本人决定整理并放到博客上,自己学习的同时能够方便大家。整理过程保证内容的一致性,根据本人的习惯可能会对某些语...
  • MONKEY_D_MENG
  • MONKEY_D_MENG
  • 2010-06-20 13:09
  • 1566

《计算机组成原理》第04章在线测试

《计算机组成原理》第04章在线测试  答题须知:1、本卷满分20分。            2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。  ...
  • jiftlixu
  • jiftlixu
  • 2012-05-04 13:27
  • 1792

大话设计模式 读书笔记

大话设计模式 读书笔记 着重从c#代码角度分析 学习心得: 学设计模式,不需要是否能立刻理解和记忆,无需着力首先是UML图 再从设计模式到UML图 从UML图到代码 其次知道各种模式的应用场景即可 第三寻找到各种模式的经典应用实例
  • jiangdmdr
  • jiangdmdr
  • 2017-03-01 18:50
  • 367

《大话设计模式》读后感

第一次读《大话设计模式》,是在刚接触C#的时候。疲累于大部头的官方教材中时,无意间翻开了这本生动有趣的书,甚是眼前一亮。由于当时C#基础薄弱,只是把它当小说来看,如饥似渴,饶有滋味,一口气看到凌晨四点,被不知觉间流逝的时间吓傻了。      ...
  • u013798619
  • u013798619
  • 2014-12-22 05:49
  • 2312

大话设计模式[中文PDF+源代码]

下载地址:http://feixueteam.net/thread-493-1-1.html
  • u013948190
  • u013948190
  • 2016-01-05 17:13
  • 7461

《大话设计模式》读书笔记,附Java代码实现

花了不到一周时间读完了《大话设计模式》,并用Java实现了一遍,需要继续实战项目才能深刻理解设计模式。 代码托管在设计模式Java代码简要实现 策略模式:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式就是用来封装算法的,但在实践...
  • doleria
  • doleria
  • 2017-05-21 23:53
  • 2370

Java程序员从笨鸟到菜鸟之(三十二)大话设计模式(二)设计模式分类和三种工厂模式

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188       设计模式分类 首先先简单说一下设计模式的分类设计模式可以分为三大类,分别是创建型设计模式、行为型设计模式以及结构型设计模式。 创建型的设...
  • csh624366188
  • csh624366188
  • 2012-04-15 09:02
  • 13457
    个人资料
    • 访问:92899次
    • 积分:2576
    • 等级:
    • 排名:第16779名
    • 原创:170篇
    • 转载:5篇
    • 译文:5篇
    • 评论:1条