1.定义

  一个软件实体(如类、模块、函数)应当对扩展开放,对修改关闭。

2.定义解读

  在项目开发的时候,都不能指望需求是确定不变化的,大部分情况下,需求是变化的。那么如何应对需求变化的情况?这就是开放-关闭原则要谈的。

  开放-封闭原则的思想就是设计的时候,尽量让设计的类做好后就不再修改,如果有新的需求,通过新加类的方式来满足,而不去修改现有的类(代码)。那么在实际的项目开发中,是否能做到绝对的对修改关闭呢?答案一般也是否定的。既然这样,那么就要求我们在开发前,去找出变化点,然后针对变化点构造抽象,隔离出这些变化。由此可见,实现开闭原则关键是抽象。

3.优点

  • 具有灵活性,通过拓展一个功能模块即可实现功能的扩充,不需修改内部代码。
  • 具有稳定性,表现在基本功能类不允许被修改,使得被破坏的程度大大下降。

4.总结

  对于设计模式的六大设计原则,单一职责原则主要说明类的职责要单一;里氏替换原则强调不要破坏继承体系;依赖倒置原则描述要面向接口编程;接口隔离原则讲解设计接口的时候要精简;迪米特法则告诉我们要降低耦合;开闭原则讲述的是对扩展开放,对修改关闭。

  六大设计原则并没有很明显的界限,当我们在遵守某一个设计原则的时候,可能也遵守了其他的设计原则。设计原则是后面要讲述的设计模式的基础,因此在本系列讲述设计模式之前,对设计原则进行了解说。

最新文章

  1. JavaScript之闭包就是个子公司
  2. Unity透明材质Batch
  3. angularJS学习笔记之——搭建学习环境
  4. C#结合LumiSoft.Net.dll读取Outlook邮件(.eml格式邮件)
  5. NFine - 全球领先的快速开发平台 Dapper Chloe
  6. SharePoint默认的欢迎WebPart中超链接样式
  7. 从零开始学android开发-查看sqlite数据库
  8. Arcgis for javascript map操作addLayer具体解释
  9. C语言,数据类型
  10. easyui 动态渲染
  11. 查看iis对应w3wp.exe显示的进程ID号(转载)
  12. 今天我成为了CSDN博客专家
  13. js 阻止事件执行
  14. ReactNative如何在JS中引用原生自定义控件(rn变化太快,网上很多教程有坑,这个我研究后可用,特意分享)
  15. 项目管理软件 GanttProject 节日表
  16. [UE4]虚幻UE4 .uproject文件无关联 右键菜单少了
  17. 【Java初探外篇02】——关于静态方法与实例方法
  18. MySql详解(四)
  19. iOS中的copy
  20. Lua之转义字符

热门文章

  1. RequireJS入门(三)转
  2. window 7 下一台cp 两个mysql 配置主从
  3. Spring 框架概述
  4. YII 快速创建项目GII
  5. javascript针对DOM的应用
  6. 如何配置仿真器DM8127+SEED-XDS560v2PLUS和连接不上的问题的解决
  7. SQL 教程学习进度备忘
  8. 备份数据库SQL Server 2008下实测
  9. Swift相关图书推荐
  10. 通过VMware Tools 将主机windows的目录共享给linux虚拟机