- 浏览: 421909 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (170)
- java (77)
- javascript (5)
- jsp (1)
- servlet (6)
- struts (8)
- hibernate (3)
- spring (4)
- ajax (5)
- jquery (3)
- apache cxf (0)
- ext.js (1)
- hadoop (0)
- android (0)
- html5 (2)
- linux (5)
- flex (1)
- tomcat (1)
- jboss (0)
- nginx (0)
- mysql (16)
- sql server (3)
- oracle (4)
- div+css (0)
- mybatis (4)
- design patterns (22)
- xml (2)
- postgresql (3)
- velocity (1)
- freemarker (1)
- kendo-ui (2)
- ibatis (1)
- socket (1)
- C and C++ (1)
- C# (2)
- 程序设计----算法 (0)
- jersey (1)
- dd (0)
- perl (1)
- shell (0)
最新评论
-
书策稠浊:
兄弟,这tm是Java?
java调用百度地图和谷歌地图 -
fengyunlouyanyu:
jquery----删除指定id的div下的img -
yangjianzhouctgu:
Neoman 写道hi,我看你引入了kendo.web.min ...
kendo-ui中kendoGrid的用法 -
Neoman:
hi,我看你引入了kendo.web.min.js 这个js, ...
kendo-ui中kendoGrid的用法 -
yangjianzhouctgu:
llscp 写道这是JS吧...对的呀
java调用百度地图和谷歌地图
本文参考别人设计模式的一个例子。
关于诸葛亮的三个锦囊妙计的估计。
IStrategy.java(三个妙计的接口类)的代码如下:
接下来就是妙计的具体实现类
BackDoor.java代码如下:
GrivenGreenLight.java代码如下:
BlockEnemy.java代码如下:
锦囊的类,用来装妙计
Context.java代码如下:
妙计的实施者:赵云
ZhaoYun.java代码如下:
运行结果如下:
关于诸葛亮的三个锦囊妙计的估计。
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{ @Override public 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{ @Override public 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{ @Override public 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("-------------------第三个妙计使用完毕----------------"); } }
运行结果如下:
----------------刚刚到吴国的时候拆开第一个--------------- 找乔国老帮忙,让吴国太给孙权施加压力 -------------------第一个妙计使用完毕---------------- -----------------刘备乐不思蜀了,拆开第二个--------------- 求吴国太开个绿灯,放行 -------------------第二个妙计使用完毕---------------- -----------------孙权的小兵追来了,咋办?拆开第三个--------------- 孙夫人断后,挡住追兵 -------------------第三个妙计使用完毕----------------
发表评论
-
设计模式----中介者模式(demiator pattern)
2013-07-21 22:55 893AbstractMediator.java代码如下: pa ... -
设计模式----原型模式(prototype pattern)
2013-07-21 22:51 600AdvTemplate.java代码如下: package ... -
设计模式----状态模式(state pattern)
2013-07-21 22:48 1156LiftState.java代码如下: package ... -
设计模式----访问者模式(visitor pattern)
2013-07-21 22:44 933IVisitor.java代码如下: package co ... -
设计模式----观察者模式(observer)
2013-07-20 19:53 1033这里采用两种方式实现观察者模式:第一种方式为完全自己写, ... -
设计模式----组合模式(composite)
2013-07-20 16:13 895该设计模式是以公司的组织结构为背景的 Crop.java代码 ... -
设计模式----迭代器模式(Iterator)
2013-07-20 15:59 881IProject.java代码如下: package co ... -
设计模式----装饰者模式(decorator pattern)
2013-07-15 09:08 982SchoolReport.java代码如下: packag ... -
设计模式----命令模式(command pattern)
2013-07-15 09:09 923Group.java代码如下: pa ... -
设计模式----桥梁模式(bridge pattern)
2013-07-14 22:21 1142Product.java代码如下: package com ... -
设计模式----模板方法模式(template method pattern)
2013-07-14 17:00 1116HummerModel.java代码如下: packag ... -
设计模式----适配器模式(adapter)
2013-07-14 13:37 829IUserInfo.java代码如下: package c ... -
设计模式----门面模式(facade)
2013-07-14 13:30 908LetterProcess.java代码如下 ... -
设计模式----抽象工厂模式(abstract factory pattern)
2013-07-13 23:09 882Human.java代码如下: package com. ... -
设计模式----工厂方法模式(factory method pattern)
2013-07-10 22:19 1038给定一个工厂类,用这个工厂类造出一堆对象来,这些对象对应的类实 ... -
设计模式----多例模式(Multition)
2013-07-02 22:47 1001Emperor.java 代码如下: ... -
设计模式----单例模式(singleton)
2013-06-30 22:17 729单例就是唯一的意思。 第一种单例实现方式(在多线程环境中存在 ... -
设计模式----代理模式(proxy)
2013-06-30 22:02 921代理模式主要使用了java ... -
装饰着模式(decorator)
2012-09-09 21:51 976一下代码就是运用了装饰者模式: package com.ba ... -
观察者模式(observer)
2012-09-09 19:36 905设计模式中观察者模式的实现有很多方式,这里列出两种实现方式 1 ...
相关推荐
设计模式-策略模式(Strategy)结合Android小知识讲解,简单明了
c++设计模式-行为型模式-策略模式;qt工程;c++简单源码; 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于...
设计模式--策略模式StrategyPattern
在策略模式(Strategy Pattern)中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
第 1 章 策略模式【Strategy Pattern】 刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题, 嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看...
策略模式思想简单实现,初学者可看看。 设计模式 策略模式 Strategy
走进设计模式之 策略模式(Strategy) 代码
比如说我要出行旅游,那么出行方式有--飞机、自驾游、火车等,这几种方式就是策略。再比如:某大型商场搞活动--满 100元送杯子,满300减50,满1000元抽奖「一等将彩色电视机」,这种活动也是策略。在游戏中,我们打...
2.3.3 策略模式 29 2.4 修饰用户界面 29 2.4.1 透明围栏 29 2.4.2 Monoglyph 30 2.4.3 Decorator 模式 32 2.5 支持多种视感标准 32 2.5.1 对象创建的抽象 32 2.5.2 工厂类和产品类 33 2.5.3 Abstract Factory 模式 ...
设计模式内部培训资料-详细介绍了策略模式。
设计模式C++学习之策略模式(Strategy)
《asp.net设计模式》涵盖了开发企业级asp.net应用程序的知名模式和最佳实践。本书用到的模式可以用于从asp.net1.0到asp.net 4.0的任何版本。不必管模式本身所用的语言,可以将模式用于任何面向对象编程语言。 ...
【Java设计模式】(2)策略模式Strategy
C#面向对象设计模式 (行为型模式) Strategy 策略模式 视频讲座下载
C#面向对象设计模式纵横谈(23):(行为型模式) Strategy 策略模式
5.9 STRATEGY(策略)——对象行为型模式 5.10 TEMPLATE METHOD(模板方法)——类行为型模式 5.11 VISITOR(访问者)——对象行为型模式 5.12 行为模式的讨论 第六章 结论 6.1 设计模式将带来什么 6.2 一套通用的...
第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器模式(Interpreter) 第22章 装饰模式(Decorator) 第23章 职责链模式...
第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器模式(Interpreter) 第22章 装饰模式(Decorator) 第23章 职责链模式...
第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器模式(Interpreter) 第22章 装饰模式(Decorator) 第23章 职责链模式...