zoukankan      html  css  js  c++  java
  • 《大话设计模式》:开放-封闭原则

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

      针对的问题:怎样的设计才能面对需求的改变却可以保持相对的稳定,从而使得系统可以在第一个版本以后不断推出新的版本呢?

      

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

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

      我们希望的是在开发工作展开不久就知道可能发生的变化。查明可能发生的变化所等待的时间越久,要创建正确的抽象就越困难。

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

  • 相关阅读:
    异或交换真的比开一个tmp快吗?
    淘宝前端团队的干货《论版本号的正确打开方式》
    箭头函数
    js对象引用问题
    json+underscore+Node 小例子
    fs.stat()
    Express static静态路由
    剑指offer(二) 替换空格
    Node实现简单的表单+图片上传+路由
    剑指offer(一) 二维数组的查找
  • 原文地址:https://www.cnblogs.com/fanxiaopeng/p/4190432.html
Copyright © 2011-2022 走看看