首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计形式-策略模式(strategy)

2013-07-04 
设计模式----策略模式(strategy)本文参考别人设计模式的一个例子。关于诸葛亮的三个锦囊妙计的估计。IStrate

设计模式----策略模式(strategy)
本文参考别人设计模式的一个例子。

关于诸葛亮的三个锦囊妙计的估计。
IStrategy.java(三个妙计的接口类)的代码如下:

package com.designPattern.strategy.interfaces;/** * 定义一个接口,这是诸葛亮老人家给赵云的三个妙计的接口 * @author yangjianzhou * */public interface IStrategy {public void operate();}


接下来就是妙计的具体实现类

BackDoor.java代码如下:
package com.designPattern.strategy.interfacesImpl;import com.designPattern.strategy.interfaces.IStrategy;/** * 这是三个妙计中的一个,即是妙计接口的实现类 * @author yangjianzhou * 找乔国老帮忙,使孙权不能杀刘备 */public class BackDoor implements IStrategy{@Overridepublic void operate() {       System.out.println("找乔国老帮忙,让吴国太给孙权施加压力");}}


GrivenGreenLight.java代码如下:

package com.designPattern.strategy.interfacesImpl;import com.designPattern.strategy.interfaces.IStrategy;/** * 这是三个妙计中的第二个妙计,也是妙计接口的实现类 * @author yangjianzhou * 求吴国太开个绿灯 */public class GivenGreenLight implements IStrategy{@Overridepublic void operate() {System.out.println("求吴国太开个绿灯,放行");}}


BlockEnemy.java代码如下:
package com.designPattern.strategy.interfacesImpl;import com.designPattern.strategy.interfaces.IStrategy;/** * 这是三个妙计中的最后一个妙计,实现了妙计接口 * @author yangjianzhou * 孙夫人断后,挡住追兵 */public class BlockEnemy implements IStrategy{@Overridepublic void operate() {System.out.println("孙夫人断后,挡住追兵");}}


锦囊的类,用来装妙计

Context.java代码如下:
package com.designPattern.strategy;import com.designPattern.strategy.interfaces.IStrategy;/** * 这是装妙计的锦囊 * @author yangjianzhou * */public class Context {private IStrategy strategy;//在锦囊中转入你要使用的妙计public Context(IStrategy strategy){this.strategy = strategy;}//实施妙计了public void operate(){this.strategy.operate();}}


妙计的实施者:赵云

ZhaoYun.java代码如下:
package com.designPattern.strategy;import com.designPattern.strategy.interfacesImpl.BackDoor;import com.designPattern.strategy.interfacesImpl.BlockEnemy;import com.designPattern.strategy.interfacesImpl.GivenGreenLight;/** * 赵云是妙计的实施者 * @author yangjianzhou * */public class ZhaoYun {public static void main(String[] args) {Context context ;System.out.println("----------------刚刚到吴国的时候拆开第一个---------------");context = new Context(new BackDoor());context.operate();System.out.println("-------------------第一个妙计使用完毕----------------");System.out.println("-----------------刘备乐不思蜀了,拆开第二个---------------");context = new Context(new GivenGreenLight());context.operate();System.out.println("-------------------第二个妙计使用完毕----------------");System.out.println("-----------------孙权的小兵追来了,咋办?拆开第三个---------------");context = new Context(new BlockEnemy());context.operate();System.out.println("-------------------第三个妙计使用完毕----------------");}}


运行结果如下:

----------------刚刚到吴国的时候拆开第一个---------------找乔国老帮忙,让吴国太给孙权施加压力-------------------第一个妙计使用完毕---------------------------------刘备乐不思蜀了,拆开第二个---------------求吴国太开个绿灯,放行-------------------第二个妙计使用完毕---------------------------------孙权的小兵追来了,咋办?拆开第三个---------------孙夫人断后,挡住追兵-------------------第三个妙计使用完毕----------------

热点排行