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

开闭原则
疑惑

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

定义

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值