研磨设计模式之策略模式-5
? ?
?
接策略模式-4,其实是讲的一个主题,写在一个里面超长了,只好分成了两个,请见谅!
?
?
?
3:扩展示例,实现方式一
??????? 经过上面的测试可以看出,通过使用策略模式,已经实现好了两种支付方式了。如果现在要增加一种支付方式,要求能支付到银行卡,该怎么扩展最简单呢?
??????? 应该新增加一种支付到银行卡的策略实现,然后通过继承来扩展支付上下文,在里面添加新的支付方式需要的新的数据,比如银行卡账户,然后在客户端使用新的上下文和新的策略实现就可以了,这样已有的实现都不需要改变,完全遵循开-闭原则。
??????? 先看看扩展的支付上下文对象的实现,示例代码如下:
?
图4? 策略模式调用顺序示意图二
?
?
?
未完待续......
8 楼 superheizai 2010-08-20 好博文!看到第二篇的时候,基本上就已经说明了策略模式的核心点上了。能从核心扩展到相关应用,扩展到与其它模式的相同与不同,也足以说明了楼主对模式的深刻理解!呵呵,继续期待其它模式。另外,建议初学模式的同学,可以看下其它简单的模式入门的书籍,再来阅读楼主的大作,相信那样我们可以学到更多!