开放封闭原则

小菜学设计模式——开放封闭原则

天涯浪子 提交于 2019-12-07 11:52:05
背景 本文标题为什么叫小菜学习设计模式,原因是本文内容主要是学习《大话设计模式》时的笔记摘要部分,当然,并不是记录书中小菜的学习过程,这个完全没有意义,而是指本人学习 设计模式的 成长之旅。 真诚的希望自己能够从一名小菜成长为一名大鸟! 编写的程序应该满足: 1)可维护 2)可扩展 3)可复用 4)够灵活 废话少说,言归正传,设计模式原则之:开放封闭原则 书面理解 开放封闭原则 :软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改 对 于扩展是开放的,对于修改则是关闭的 无论模块是多么的封闭,都会存在一些对之无法封闭的变化。既然不能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须猜测出最有可能发生发生变化的种类,然后构造抽象来隔离那些变化。 实际开发过程中是很难通过猜测来判断哪些种类会发生变化的,但是我们却可以在发生小变化时,就及早想办法应对发生更大的变化的可能。也就是说,等到变化发生时立即采取行动。 在我们最初编写代码时,假设变化不会发生,当变化发生时,我们就创建抽象来隔离以后发生的同类变化。 面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码 。 我们希望的是在开发工作中展开不久就知道可发生的变化。查明可能发生变化所等待的时间越长,要创建正确的抽象就越困难。换句话说,如果在开发过程中已经使用或者依赖这个接口的地方越多