设计模式之策略模式
来源:互联网 发布:类似youcam的软件 编辑:程序博客网 时间:2024/06/09 17:42
设想一种场景,小明要去商店买东西,可是他不知道去商店的路线该怎么走,这是他爸爸给了它一锦囊说你不知道怎么走那么你就打开这个锦囊里面会有去商店的办法的,然后小明就拿出爸爸给的锦囊出去了:
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; } }
这就是我写的一个策略模式。。。。有不对的地方请指出谢谢。。。。。
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 应用程序的SQL查询原理
- Spring.net 依赖注入 简单例子
- JavaSE第六十五讲:静态代理模式深度剖析
- MySQL & SQL 学习资源
- 梦之递归分治法
- 设计模式之策略模式
- 新起点
- 无法删除服务器 'old_server_name',因为该服务器用作复制过程中的发布服务器。 (Microsoft SQL Server,错误: 20582)
- 最全的HTTP头部信息分析
- 38_日志工具commons-logging与Log4J
- Hive Job log解析——perl脚本
- shell相关概念
- 遍历文件夹windows
- 原子性