开闭原则

2018-06-02  本文已影响38人  码出高效

描述:一个软件实体如类,模块和函数应该对扩展开放,对修改关闭。

其实含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化,那什么是软件实体呢?

项目或软件产品按一定的逻辑规则划分的模块。

抽象和类。

方法。

当需求变化的时候,有的书籍需要打折,那么如个解决这个需求呢?

 1  修改接口     

在IBook上新增一个方法getOffprice()方法,专门用于处理打折的  但是这样修改的结果就是实现类也要修改  IBook作为接口应该是稳定且可靠的,不应该经常变化,

2  修改实现类

直接在getprice()方法中实现打折处理。

3  通过扩展实现变化(可选)

 增加一个子类,复写getPrice()方法,


注意 开闭原则对扩展开放,对修改关闭,并不意味者不做任何修改,底层模块的变更,必然要有高层模块进行耦合。

上一篇 下一篇

猜你喜欢

热点阅读