这篇是软件设计原则系列文章的第一篇,之前写过一篇博客里面介绍了七种设计原则,但是将七种原则容纳到一篇文章之中总感觉哪里不对:说的太多文章就会变得冗长影响阅读体验,说的太少总感觉有的话没说完就进行下一项了,于是乎本人突发奇想为何不分开来写?更于是乎就有了“软件设计原则系列文章”,本文是个开篇。废话不多说了,Let's come to the point!

软件设计一共有七大原则,在这七大原则之上还有一个总体原则,也就是我们常说的“高内聚,低耦合”。它们之间就好比白雪公主和七个小矮人的关系,那它们叫什么名字呢?让我们先来认识一下,它们分别是:开闭原则(OCP)、依赖倒置原则(DIP)、单一职责原则(SRP)、接口隔离原则(ISP)、迪米特原则(LoD)、里氏替换原则(LSP)和合成复用原则(CARP)。今天的主角是这七个矮人中的姚明,它就是开闭原则(OCP,Open Close Principle)。

门一开一闭,眼一闭一睁,这也算个原则?

没错,但这里的开闭不是指门,而是对扩展开放对修改关闭,用扩展而不是修改来适应需求的变化。有句话说的好——唯一不变的是变化本身,应用到软件界就是需求是一定会变化的,即使原来的不变新的东西也会加进来,如果你想一劳永逸,开发的东西永远不会变,那只有一种可能——这个系统已经没人在用了。怎么证明一个软件或者系统还活着?我们来看一下身边的例子:Win10是不是会不定时地更新升级?Android和IOS等常用的手机系统是不是会经常提示你升级?我们经常玩儿的游戏是不是会经常打补丁……那什么样的代码不需要维护了呢?在我上大学的时候最火的手机品牌之一——诺基亚,当时它安装的系统塞班现在已经被淘汰,这个代码已经不需要维护了(坏了,暴露年龄了)。现在是2020年的3月份,就在两个月前的1月14日,微软官方宣布Win 7操作系统退役,从此陪伴了大家10年之久的Windows 7正式退出历史舞台,它的代码也不需要维护了,更早的像什么Windows XP啊、Windows 98啊就更不用说了(再一次暴露年龄

软件设计原则之第一篇——开闭原则(OCP)相关推荐

  1. 软件设计原则(一)开闭原则(Open-Closed Principle, OCP)

    狭义理解:对扩展开发,对修改封闭 在学习设计模式之前,应该先对软件设计原则有一定的了解,设计模式在一定程度上是迎合软件设计原则而产生的,脱离了软件设计原则,设计模式是没有意义的. 开-闭原则(Open ...

  2. 设计模式六大原则(6)——开闭原则

    定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 问题由来:在软件的生命周期内,因为变化.升级和维护等原因需要对软件原有代码进行修改时,可能会在旧代码中引入错误,也可能会使我们不得不对整 ...

  3. 设计模式六大原则(6)开闭原则(Open Close Principle)

    开闭原则(Open Close Principle) 定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 问题由来:在软件的生命周期内,因为变化.升级和维护等原因需要对软件原有代码进行修改 ...

  4. 设计原则(一)开-闭原则(OCP)

    经典力学的基石是牛顿三大定律.而面向对象的可复用设计的第一块基石,便是所谓的"开-闭"原则(Open-Closed Principle,常缩写为OCP). 一.什么是开闭原则 &q ...

  5. 设计模式的七大设计原则:其五:开闭原则

    开闭原则: 基本介绍: 1.开闭原则(Open Closed Principle)是编程中最基础,最重要的原则. 2.一个软件实体如类,模块和函数应该对扩展开饭,对修改关闭.用抽象构建框架,用实现扩展 ...

  6. java开闭原则_什么是开闭原则?如何实现开闭原则

    2015-04-13 06:30:01 阅读( 137 ) 开闭原则的解释就是:软件实体应当对扩展开放,对修改关闭,也就是:软件系统中包含的各种组件,例如模块(Modules).类(Classes)以 ...

  7. 开闭原则的例子_开闭原则

    开闭原则的例子 A class or module should be open for extension and closed for modification. 类或模块应打开以进行扩展,而应关 ...

  8. 从零开始学习Java设计模式 | 软件设计原则篇:开闭原则

    从本讲开始,咱们就要开始学习第一章中的第三部分内容,即软件设计原则了. 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序,从而提高软件 ...

  9. 面向对象软件设计的“开—闭”原则

    1.什么是开闭原则         "开-闭"原则是指软件实体应当对扩展性开放,对修改关闭.即软件实体应该在不修改的前提下扩展,这个原则实际上为软件设计指明了目标.我们知道软件设计 ...

最新文章

  1. 腾讯云 短信服务 【学习记录 】
  2. Go 2将添加错误处理和泛型
  3. iis7设置html支持asp,Win7下启用IIS7配置ASP运行环境的详细方法
  4. 【编程好习惯】避免使用魔数
  5. 文字转语音文件的两种方法
  6. CentOS(RedHat)命令行永久修改IP地址、网关、DNS
  7. Wi-Fi 6 爆发的 2019
  8. ON1 Photo RAW 2022 for Mac(ps/lr滤镜raw图像编辑器)
  9. 如何免费复制百度文库上的文字
  10. Python3,这个库,真的是图片类型验证码的克星,真香。
  11. paypal订阅流程及api请求
  12. 红米手机TWRP读不了刷机包成功解决记录
  13. 计算机二级Ms Office考点自检卡
  14. 点击进入我的QQ空间
  15. Physically Based Rendering——史上最容易理解的BRDF中D函数NDF的中文资料
  16. 思科ASA防火墙:控制防火墙不让访问指定网站
  17. 新书上市 | Python办公自动化(好友新书,值得一看,文末有福利)
  18. Java深海拾遗系列(9)--- 关于Java序列化的10个面试问题
  19. ESP8266-Arduino编程实例-QRE1113红外反射传感器
  20. 双向buck-boost变换器,采用电压外环,电流内环控制,平均电流控制

热门文章

  1. js中获取dom元素高度
  2. Copy Deepcopy
  3. 百度Apollo无人驾驶入门课程下载
  4. JSP 与 HTML 的关系
  5. socket阻塞和非阻塞
  6. Curve fitting之matlab
  7. ipad iphone开发_如何在iPhone或iPad上重命名文件夹
  8. 望门投止思张俭,认死须臾待杜根,我自横刀向天笑,去留肝胆两昆仑。
  9. Daily English Dictation NO.1 ~ NO.30
  10. 【瑞模网】ue4 摩尔纹 远处模型闪烁问题