策略模式

先看代码
Code

这个代码,是照书上的例子照搬下来的,代码比较简洁,也很容易理解,主要是对超市销售货物进行结账的一种模拟程序,对超市出现的按原价销售,返现金,打折进行封装,上面的客户端程序,我提供了两种,一种是简单工厂模式,一个是策略模式与简单工厂模式的组合。相比之下,我更喜欢第二中,因为,使用策略模式与简单工厂模式的结合,将策略方法封装的更好,用户只知道CashContext类,对其它的不知道,这样更容易保护自己的策略类了。而第一种也同样解决了问题,但是我们要知道两个类(Cash,CashFactory)另外我们要用Cash类的AcceptCash方法,来获取当前使用的消费类型所应该付的金钱树,对用户来说暴露我的内及内部结构。示例代码
posted @ 2009-05-26 17:33  程晓鹏  阅读(411)  评论(0)    收藏  举报