设计模式-----开放--封闭原则

来源:互联网 发布:二维旋转变换矩阵 编辑:程序博客网 时间:2024/04/29 15:06
开放--封闭原则:是说软件实体(类,模块,函数等)应该可以扩展,但是不可修改。我们做任何系统的时候不要指望系统一开始需求就是确定的。这是不科学也不现实的想法。既然需求是变化的。那么如何在面对需求的变化时,设计的软件相对容易修改,不至于说,新需求一来,整个程序推倒重来。开闭原则告诉我们设计的时候,时刻要考虑,尽量让这个类足够好,写好后就不要去修改了。新需求来时,增加一些类就可以了,原来的代码能不动就不要动。但是绝对的对修改关闭是不可能的。无论模块是多么的封闭,都会存在一些无法对之封闭的变化。既然不能完全封闭,设计人员必须对于设计的模块应该对哪种变化封闭做出选择。他必须先猜测最有可能发生的变化种类,然后构造抽象来隔离那些变化。而我们很难猜测,单我们可以在发生小变化时就及早去想办法应对发生更大变化的可能。即等到发生变化时立即采取行动。在我们最初编写代码时,假设变化不会发生,当变化发生时,我们就创建抽象来隔离以后发生的同类变化。譬如之前的加法程序,首先在一个client类中完成,此时没有变化。然后要求增加一个减法功能,我们发现,增加减法功能需要修改原来的类,违背开闭原则,于是考虑重构程序,增加一个抽象类,通过一个写面向对象的手段,如继承,多态等来隔离具体的加法,减法与client耦合,需求依然满足,还能应对变化。即面对需求,对程序的改动是通过增加新代码进行的,而不是修改现有的代码。开闭原则是整个面向对象核心的所在。
原创粉丝点击