开放—封闭原则:是说软件实体(类,模块,函数等等),应该可以扩展,而不是修改
开闭原则主要体现在两个方面:
1、对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
2、对修改封闭,意味着类一旦设计完成,就可以独立其工作,而不要对类尽任何修改。
参见策略模式(http://www.cnblogs.com/-zda/p/7129216.html)
当我们在用策略模式完成一个收银系统时,可能会遇到各种需求,比如打折销售,满减活动等,这时候我们定义了一个抽象基类 CashSuper
我们在设计活动方法时,并没有将所有的活动方法写在同一个类中,这样不仅不易维护,并且在修改其中一个方法时,可能会影响到另外一个方法
这时我们就先抽象出来了一个基类(或接口),不同的活动通过继承这个类来实现,这就是对扩展的开放,而对修改是封闭的。