- 浏览: 429042 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 935AbstractMediator.java代码如下: pa ... -
设计模式----原型模式(prototype pattern)
2013-07-21 22:51 641AdvTemplate.java代码如下: package ... -
设计模式----状态模式(state pattern)
2013-07-21 22:48 1208LiftState.java代码如下: package ... -
设计模式----访问者模式(visitor pattern)
2013-07-21 22:44 978IVisitor.java代码如下: package co ... -
设计模式----观察者模式(observer)
2013-07-20 19:53 1073这里采用两种方式实现观察者模式:第一种方式为完全自己写, ... -
设计模式----组合模式(composite)
2013-07-20 16:13 933该设计模式是以公司的组织结构为背景的 Crop.java代码 ... -
设计模式----迭代器模式(Iterator)
2013-07-20 15:59 921IProject.java代码如下: package co ... -
设计模式----装饰者模式(decorator pattern)
2013-07-15 09:08 1028SchoolReport.java代码如下: packag ... -
设计模式----命令模式(command pattern)
2013-07-15 09:09 960Group.java代码如下: pa ... -
设计模式----桥梁模式(bridge pattern)
2013-07-14 22:21 1187Product.java代码如下: package com ... -
设计模式----模板方法模式(template method pattern)
2013-07-14 17:00 1149HummerModel.java代码如下: packag ... -
设计模式----适配器模式(adapter)
2013-07-14 13:37 869IUserInfo.java代码如下: package c ... -
设计模式----门面模式(facade)
2013-07-14 13:30 949LetterProcess.java代码如下 ... -
设计模式----抽象工厂模式(abstract factory pattern)
2013-07-13 23:09 915Human.java代码如下: package com. ... -
设计模式----工厂方法模式(factory method pattern)
2013-07-10 22:19 1083给定一个工厂类,用这个工厂类造出一堆对象来,这些对象对应的类实 ... -
设计模式----多例模式(Multition)
2013-07-02 22:47 1036Emperor.java 代码如下: ... -
设计模式----单例模式(singleton)
2013-06-30 22:17 759单例就是唯一的意思。 第一种单例实现方式(在多线程环境中存在 ... -
设计模式----代理模式(proxy)
2013-06-30 22:02 963代理模式主要使用了java ... -
装饰着模式(decorator)
2012-09-09 21:51 1011一下代码就是运用了装饰者模式: package com.ba ... -
观察者模式(observer)
2012-09-09 19:36 945设计模式中观察者模式的实现有很多方式,这里列出两种实现方式 1 ...
相关推荐
行为型模式如观察者模式(Observer)、策略模式(Strategy)和访问者模式(Visitor),关注对象之间的交互和责任分配。 在C++中,设计模式的应用通常涉及到面向对象编程的特性,如继承、封装和多态。Qt4框架则为...
c++设计模式-行为型模式-策略模式;qt工程;c++简单源码; 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式通常用于替换硬编码的条件语句,使代码更加灵活、可扩展和易于维护。下面我们将详细探讨策略模式的核心概念、实现方式以及在实际...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。这种模式允许你使用算法族,而无需在代码中硬编码这些算法。通过将算法封装到具有共同接口的独立对象中,策略模式使得你可以根据需要灵活地切换算法,...
策略模式是设计模式的一种,它允许我们在运行时动态地改变对象的行为。在这个"php设计模式-策略模式-例题学习"的例子中,我们将深入理解策略模式的运用及其在PHP中的实现。 首先,让我们来看看核心的类和接口: ...
总的来说,Strategy模式是一种强大的设计模式,它鼓励我们以更面向对象的方式来组织代码,通过封装和组合策略,使我们的系统能够应对复杂性和变化。在进行软件设计时,尤其是面对具有多种实现可能的算法或逻辑时,应...
首先,策略模式由三个主要组成部分构成:上下文(Context)、策略(Strategy)接口和具体策略(Concrete Strategy)。上下文是使用策略的对象,它维护一个对策略的引用,并调用策略的接口来执行算法。策略接口定义了一组...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在C++中,策略模式主要用于封装一系列算法,并让它们之间可以互相替换,使得算法的变化独立于使用算法的客户。这种模式通常涉及三个主要角色:策略...
"策略者"(Strategy)设计模式是其中的一种行为模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。这种模式让算法的变化独立于使用算法的客户。 在《设计模式-策略者》这篇文章中,作者深入浅...
1. 策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。策略模式的意图是定义一系列算法,将每个算法封装起来,并使它们可以互换。策略模式让算法的变化独立于使用算法的客户端。在提供...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要在不同时间或根据不同条件执行不同算法的情况。策略模式允许我们将算法封装到独立的可互换的策略类中,使得算法的变化...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或场景来执行不同算法的情况。策略模式提供了一种将算法族封装到各自独立的类中,并在运行时选择具体...
策略模式是Java设计模式中的一种行为模式,它允许在运行时选择算法或策略,从而提供了更大的灵活性。在HeadFirst的《设计模式》一书中,第一章深入浅出地讲解了这一模式,通过实例帮助读者理解其核心概念和应用场景...
在这个“java设计模式-策略模式”的示例中,我们将深入探讨如何使用策略模式来实现一个简单的超市促销系统。 策略模式的核心思想是定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换。这使得算法的...
策略模式的核心组成部分包括上下文(Context)、策略(Strategy)接口和具体的策略类。上下文是使用策略的对象,它维护一个对策略对象的引用,并通过这个引用调用策略的方法来执行相应的算法。策略接口定义了策略家族...
- 策略模式(Strategy):定义一系列的算法,把它们一个个封装起来,并且使它们可以互相替换。 - 模板方法模式(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中。 - 访问者模式...
### 设计模式培训-strategy #### 一、设计模式概览 设计模式是软件工程领域的一个重要概念,它提供了一套解决常见问题的有效方法。在软件开发的过程中,开发者经常会遇到相似的问题,这些问题往往有着类似的解决...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或场景来执行不同算法的情况。策略模式提供了一种将算法族封装到各自独立的类中,并让它们之间可以互相...
【策略模式】是一种设计模式,它的核心思想是将不同的算法或行为封装成独立的类,这些类具有统一的接口,从而使客户端可以灵活地选择并使用其中的任何一种算法,而无需关心具体实现的细节。这种模式可以有效地避免...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。 在策略模式中,我们创建表示各种策略的对象和一个行为根据...