设计模式之策略模式
2012-09-15 22:32
344 查看
策略模式主要定义一些列的算法,把这些算法封装成偶共同接口的单独的类,并且使他们之间可以互换。策略模式主要有下面几部分组成:
[align=left]1) 算法使用环境(Context)角色:算法被引用到这里和一些其它的与环境有关的操作一起来完成任务。[/align]
[align=left]2) 抽象策略(Strategy) 角色:规定了所有具体策略角色所需的接口。在 java 它通常由接口或者抽象类来实现。[/align]
[align=left]3) 具体策略(Concrete Strategy) 角色:实现了抽象策略角色定义的接口。[/align]
[align=left]例子演示:[/align]
[align=left]以普通会员和VIP会员享受的折扣为例[/align]
[align=left] [/align]
[align=left]运行结果:[/align]
[align=left]1) 算法使用环境(Context)角色:算法被引用到这里和一些其它的与环境有关的操作一起来完成任务。[/align]
[align=left]2) 抽象策略(Strategy) 角色:规定了所有具体策略角色所需的接口。在 java 它通常由接口或者抽象类来实现。[/align]
[align=left]3) 具体策略(Concrete Strategy) 角色:实现了抽象策略角色定义的接口。[/align]
[align=left]例子演示:[/align]
[align=left]以普通会员和VIP会员享受的折扣为例[/align]
[align=left] [/align]
package com.cnblogs.ipolaris.Strategy.test; /** * 定义抽象策略角色 * @author iPolaris * */ public interface Strategy { public double cost( double num); } package com.cnblogs.ipolaris.Strategy.test; /** * 普通会员策略角色 * @author iPolaris * */ public class StrategyCommon implements Strategy { @Override public double cost( double num) { // TODO Auto-generated method stub return num*0.9; } } package com.cnblogs.ipolaris.Strategy.test; /** * 算法使用环境角色 * @author iPolaris * */ public class Context { private Strategy strategy ; public Context(Strategy strategy) { super (); this .strategy = strategy; } public double cost( double num){ return strategy .cost(num); } } package com.cnblogs.ipolaris.Strategy.test; public class Test { /** * @param args */ public static void main(String[] args) { double num = 1000; Context context = new Context(new StrategyCommon()); double newNum = context.cost(num); System. out .println("普通会员付账" + newNum + "元"); context = new Context(new StrategyVIP()); newNum = context.cost(num); System. out .println("VIP会员付账" + newNum + "元"); } }
[align=left]运行结果:[/align]
普通会员付账900.0元 VIP会员付账800.0元
相关文章推荐
- 设计模式-策略模式
- JS 设计模式--策略模式
- 设计模式(十二)---策略模式
- 【设计模式】—— 策略模式Strategy
- 设计模式之策略模式(行为型模式)
- 设计模式笔记——策略模式VS简单工厂模式
- 常用设计模式(六)——策略设计模式
- 设计模式学习实践---策略模式(Strategy Pattern)
- 设计模式------策略模式
- 设计模式一(策略模式)
- 简单模拟Comparator-策略设计模式-马士兵设计模式教程
- 《Head First 设计模式》之策略模式
- 设计模式学习--策略模式
- 【设计模式】 模式PK:策略模式VS桥梁模式
- 设计模式--策略模式
- 设计模式---策略模式
- 设计模式-策略模式(Strategy Pattern)
- 设计模式-策略模式
- 设计模式之策略模式
- 设计模式笔记:策略模式