美文网首页
第4章 考研求职两不误--开放-封闭原则

第4章 考研求职两不误--开放-封闭原则

作者: 落墨Zero | 来源:发表于2018-06-11 15:07 被阅读0次

开放-封闭原则

开放-封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。

这个原则其实是有两个特征,一个是说“对于扩展是开放的(Open for extension)”,另一个是说“对于更改是封闭的(Closed for modification)”[ASD]

例如,公司的考勤制度,公司规定九点上班,不允许迟到。但有的员工总是迟到。
迟到不是主要问题,每天保证8小时的工作量是老板最需要的,甚至8小时工作时间也不是主要问题,业绩目标的完成或超额完成才是最重要的指标,于是应该改变管理方式,比如弹性上班工作制,早到早下班,晚到晚下班,对市场销售人员可能就更加以业绩为标准,工作时间不固定了--这其实就是对工作时间或业绩成效的修改关闭,而对时间制度扩展的开放。

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

在我们最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化[ASD]就像之前简单工厂模式里关于计算器的算法,当需求只有加法的时候,可以在一个类中完成,此时变化还没有发生。然后,有个添加减法的需求,这就违背了‘开放-封闭原则’,于是就该考虑重构,增加一个抽象的运算类,通过一些面向对象的手段,来隔离具体操作的耦合,需求依然可以满足,还能应对变化。这时,如果再要添加乘除,就不用修改之前的代码,增加子类就可以。即面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。[ASD]

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

相关文章

  • 大话设计模式读书笔记-4开放-封闭原则

    第4章 考研求职两不误——开放-封闭原则 也不对应具体的设计模式,而是思想,即:软件实体应该可以扩展,但是不可修改...

  • 第4章 考研求职两不误--开放-封闭原则

    开放-封闭原则 开放-封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。 这个原则其实是有两...

  • 开放封闭原则

    本文是对敏捷软件开发第九章开发-封闭原则的学习笔记。 一句话,软件实体应该是可扩展但是不可修改的。 对于扩展是开放...

  • 开放-封闭原则

    对修改关闭,对增加开放

  • 开放 — 封闭原则

    在软件设计模式中,这种不能修改,但可以扩展的思想是重要的一种设计原则,是开放—封闭原则(The Open-Clos...

  • 六大设计原则-开放封闭原则

    开放封闭原则 Open Closed Principle 简称OCP 什么是开放封闭原则 软件实体(类,模块,方法...

  • 装饰器1

    开放封闭原则 讲装饰器之前我们先来了解一下开放封闭原则 开放封闭原则:软件实体应该是可扩展,而不可修改的。也就是说...

  • 替代工厂模式的方法

    前言 开放封闭原则,要求程序的扩展是开放的,程序的修改是封闭的。做到开放封闭的原则通常是针对抽象编程而不是具体编程...

  • CRM知识点整理(一)

    单例的实现方式 文件导入 类方法 反射的应用 importlib getattr 开放封闭原则 开放封闭原则(OC...

  • 设计原则

    1. OCP-开放封闭原则 面向扩展开放,面向修改封闭。关键点是抽象。 2. | SRP | 单一职责原则 | ...

网友评论

      本文标题:第4章 考研求职两不误--开放-封闭原则

      本文链接:https://www.haomeiwen.com/subject/lxkheftx.html