设计模式--策略模式
?
?代码如下:
?这样是将上班行为分离出来了,但是如果增加了步行上班的人、开车上班的人…..等等,代码越来越多了,而且总是要去继承程序员类,实现上班接口,而且有一天,哪个坐地铁的人买了车,改为开车上班呢?是不是的去改代码?没法动态改变?还有没有更优越的方式呢?
? //上班接口
?
2.针对接口编程:我们只需要针对上班方式这个接口编程,不需要去修改程序员类。
再举第二个例子:商场收银系统,收银除了计算商品单价、数量和总价外,有时候要做活动,比如:打八折、打五折,满500送减200等等。我们就拿单个商品来说:(因为真正的商场收费系统还比较复杂,因为要计算每一种商品的价格,数量,折扣,而且还要计算总价的折扣方式,商品和商场都有各自的折扣方式)
?
?
?
?