您的位置:首页 > 其它

【大话设计模式——学习笔记(4)】开放——封闭原则

2014-04-03 17:23 239 查看
开放——封闭原则

    软件实体可以扩展,但是不可修改。即对于扩展是开放的,对于修改是封闭的。面对需求,对程序的改动是通过增加代码来完成的,而不是改动现有的代码。

  当变化发生时,我们就创建抽象来隔离以后发生同类的变化。

  开放――封闭原则是面向对象的核心所在。开发人员应该对程序中呈现出频繁变化的那部分做出抽象,拒绝对任何部分都刻意抽象及不成熟的抽象。



      怎么才能比较好的理解开放——封闭呢,现在小P用书中的例子来描述下。在我们写计算器时,一开始只要求有加法功能,因此我们写了一个客户端类和一个加法类。但是后来需求变更,要求再添加一个减法类。这个时候我们不能再写一个减法类就完事,因为之后可能还会有乘法等,而各种运算在有些功能上又是相同的,比如都是输入两个数字一个运算符,然后得出一个结论。因此,我们应该抽象出一个运算类,把共有的属性写进去,把特有的方法抽象出来,供子类完善,而这个运算类在原则上是不能改变的(除了添加共有的功能),之后不管是加减乘除还是开方等各种运算,直接添加一个继承于运算类的子类就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息