设计模式之策略模式
2013-01-05 15:05
176 查看
设想一种场景,小明要去商店买东西,可是他不知道去商店的路线该怎么走,这是他爸爸给了它一锦囊说你不知道怎么走那么你就打开这个锦囊里面会有去商店的办法的,然后小明就拿出爸爸给的锦囊出去了:
这就是我写的一个策略模式。。。。有不对的地方请指出谢谢。。。。。
package com.djk.celuo; /** * 策略模式 * @author djk * */ public class TacticsTest { public static void main(String[] args) { XiaoMing xiaoMing = new XiaoMing(); //策略1 Tactics tactics = new TacticsOne1(); //策略2 Tactics tactics2 = new TacticsOne2(); //锦囊 Tips tips = new Tips(); //给锦囊放策略1 tips.setTactics(tactics); //给小明一个锦囊 xiaoMing.setTips(tips); //小明去商店 xiaoMing.goToShopping(); } } /** * 策略接口 * @author djk * */ interface Tactics { /** *去商店的路线 * */ void goShopping(); } /** * 第一种策略 * @author djk * */ class TacticsOne1 implements Tactics { public void goShopping() { System.out.println("去商店的路线1"); } } class TacticsOne2 implements Tactics { public void goShopping() { System.out.println("去商店的路线2"); } } /** * 存放策略的锦囊 * @author djk * */ class Tips { private Tactics tactics; public Tactics getTactics() { return tactics; } public void setTactics(Tactics tactics) { this.tactics = tactics; } } /** *小明 * @author djk * */ class XiaoMing { /** * 锦囊 */ private Tips tips; public void goToShopping () { //小明忘记带爸爸给的锦囊了 if(null == tips) { System.out.println("忘记带锦囊啦。。。"); return ; } Tactics tactics = tips.getTactics(); //爸爸没有在锦囊里放策略给了一个空的锦囊啊 if(null ==tactics) { System.out.println("给的锦囊是空的啊里面没有放策略啊"); return ; } tactics.goShopping(); } public Tips getTips() { return tips; } public void setTips(Tips tips) { this.tips = tips; } }
这就是我写的一个策略模式。。。。有不对的地方请指出谢谢。。。。。
相关文章推荐
- 设计模式:策略模式-strategy
- 设计模式之策略模式
- 设计模式之策略设计模式
- 23种设计模式之策略模式(Strategy)
- java设计模式13——策略模式(Strategy)
- 设计模式学习一 策略模式;观察者模式
- 策略设计模式--学习笔记
- 设计模式_2_策略模式
- 设计模式之二: 策略模式
- HeadFirst 设计模式学习笔记1--策略模式
- 设计模式_策略模式
- JAVA设计模式(八)——策略模式
- c++设计模式--策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 从头认识设计模式-策略模式-02-解决方向一:在继承里面增加导入导出方法
- 老王讲设计模式(一)——策略模式
- 设计模式-行为型模式-策略模式
- php 设计模式-策略模式
- 设计模式系列(一)策略模式(Strategy Pattern)