java设计模式之策略模式

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.)
今天讲述的是一个正规商场打折促销商品的例子。促销商品的方式有以下几种:
(1)打8折促销商品;
(2)满1000元减200促销商品;
(3)满200元,高于200的部分打8折促销商品。
使用策略模式实现过程当中,需要满足以下几点内容:
(1)需要一个总体结构负责保存当前的具体策略,然后在具体的使用方法中调用具体策略实现相应的算法;
(2)可以在适当的时候改变当前策略;
(3)每一种条件分支作为一个具体策略算法单独实现。
 
来看一下商品促销中的结构关系图,
 
 
 
接下来对商品促销关系图进行精细化,使用类图的方式让我们对示例中各种角色之间的关系有一个更加清晰的认识
 
 
策略模式实现步骤:
 创建策略接口
  创建具体策略
1.8折促销策略——RebateStrategy
2.满1000减200促销策略——ReduceStrategy
3.200以上部分打8折促销策略——PromotionalStrategy
 创建上下文环境
 消费者购物消费
 
使用场景:
策略模式是处理算法的不同变体的一种行为模式,其通用静态类图如图:

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值