浅读《大话设计模式》---------------4、考研求职两不误----开放-封闭原则

浅读《大话设计模式》---------------4、考研求职两不误----开放-封闭原则

浅读《大话设计模式》---------------4、考研求职两不误----开放-封闭原则

开放—封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。[ASD]。这个原则有两个特征:对于扩展是开放的,另一个是说对于更改是封闭的。

本原则经过作者精辟的阐述,马上就让我们在哲学上对一些问题的看法豁然开朗:看起来两个完全抵触的东西,利用扩展与封闭原则就能很好的解决。什么东西必须关闭,什么东西可以扩展?主权和业绩是必须关闭修改的,但是制度却是可以扩展开放的!难道这仅仅是一种计算机理论吗?这简直是处事之道!

如何应对变化?——除非你足够强大,所有的人和事都无条件的服从你的,否则就需要面对无法预料的变化。事实上,对未来变化的估计和处理能力正是智慧的体现。好像离程序设计越来越远了哦~言归正传,既然变化是无法避免的,那么对已有的机制进行对应的修改也是必须的(真的有“以不变应万变”么?)。所以,“绝对的修改关闭是不可能的。无论模块是多么的‘封闭’,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对那种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化[ASD]。”

“在我们最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化[ASD].”这里同时也反映了一个问题:要架构好的程序,我们需要善于分析程序的变化,善于总结善于抽象!当遇到问题了,我们应该思考这一类问题,并作出抽象改善程序的架构,提取出真正的封闭的和开放的部分。

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

很好,从本设计模式学到了很多很多,远远超过了程序设计的范畴!哈哈,考研的例子我觉得也很合适嘛。全力以赴是必须的,两手准备也是一种灵活。只要别忘了自己当前的重点——就像快乐一样,得到成功的目标是关闭的,但过程是开放的!

你可能感兴趣的:(浅读《大话设计模式》---------------4、考研求职两不误----开放-封闭原则)