设计模式——开放-封闭原则之我见

开闭原则
疑惑

开发中,要有这样一个认识:需求不会一成不变,不要期待在开发系统时,就要求系统的所有需求都定下来,这是不可能的,也是不科学的。我曾经做过一个项目,从开始做app到完全开发完全,总共经历了三次大的需求改动,到最后发现,最终版的结果跟第一次的设计完全看不出有联系。相当与开发了三个项目,之所以造成这样的费事的结果,除了跟售前以及项目经理没有跟客户沟通好需求有关系外,也不能否认一个事实:需求不可能从第一次就可以定死。而且,第一次的需求可能只是一个大概的需求框架,其中的细节总是要改变的。由此造成的后果是,一边探讨需求,一边进行开发。这样的话,就需要我们从开始就定义好一个基础类,在面对需求改动的时候,我们可以在原来的基础上进行扩展,而不去修改之前的实现,这样就可以让程序更好的实现迭代。(题外话 :这种边谈需求,边编程的开发模式据说叫做迭代模式)。在面对需求经常变化的情况下,我们如何做到较好的迭代呢,这就需要遵循一个原则了,也就是开闭原则。

定义

open for extension,close for modification从字面理解,我么就可以知道这个原则指的是对扩展开放,对修改关闭。其粒度可以是模块、类、接口、方法等。当然,无论模块如何的封闭,都会存在一些无法对之封闭的变化。既然不能完全封闭,设计人员必须对他设计的模块应该对哪些变化封闭做出选择。他必须先猜测出可能发生的变化种类,然后构造抽象来隔离那些变化。开发中,当发生变化时,我们就创建这种变化的抽象,来隔离以后发生的同类变化。面对需求,对程序的修改是通过增加新的代码来进行的,而不是通过改动现有的代码。

后记——-
人勤事事易,人懒事事难。

猜你喜欢

转载自blog.csdn.net/Jatham/article/details/81838514