- 浏览: 80215 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
hanlingbo2008:
问题:
空中巴士(airbus)、波音(Boeing)、麦道 ...
桥梁(Bridge)模式 -
hanlingbo2008:
从Enueration到Iterator的适配
publ ...
适配器模式(Adapter) -
hanlingbo2008:
从Iterator到Enueration的适配
publ ...
适配器模式(Adapter)
命令模式例子------创世纪系统
系统开始时,世界是个黑暗的窗体,窗体上有4个按钮: Let There Be Light(要有光), Let There Be Land(要有地),Reset(复原),God Rests(上帝休息了)
代码:
/* 抽象命令角色 */ public interface CommandFromGod { public void Execute(); }
import java.awt.*; import java.awt.event.*; /* 具体命令角色,Let There be light*/ public class LetThereBeLightCommand extends Button implements CommandFromGod { Panel p; public LetThereBeLightCommand(String caption, Panel pnl) { super(caption); p = pnl; } public void Execute() { p.setBackground(Color.white); } }
import java.awt.*; import java.awt.event.*; /* 具体命令角色,Let There be land*/ public class LetThereBeLandCommand extends Button implements CommandFromGod { Panel p; public LetThereBeLandCommand(String caption, Panel pnl) { super(caption); p = pnl; } public void Execute() { p.setBackground(Color.orange); } }
import java.awt.*; import java.awt.event.*; /* 具体命令角色,Rests*/ public class GodRestsCommand extends Button implements CommandFromGod { public GodRestsCommand(String caption) { super(caption); } public void Execute() { System.exit(0); } }
import java.awt.*; import java.awt.event.*; /* 具体命令角色,Reset*/ public class ResetCommand extends Button implements CommandFromGod { Panel p; public ResetCommand(String caption, Panel pnl) { super(caption); p = pnl; } public void Execute() { p.setBackground(Color.black); } }
import java.awt.*; import java.awt.event.*; /* Client */ public class TheWorld extends Frame implements ActionListener { LetThereBeLightCommand btnLight; LetThereBeLandCommand btnLand; ResetCommand btnReset; GodRestsCommand btnExit; Panel p; public TheWorld() { super("This is the world, and God says..."); p = new Panel(); p.setBackground(Color.black); add(p); btnLight = new LetThereBeLightCommand("Let there be light", p); btnLand = new LetThereBeLandCommand("Let there be land", p); btnReset = new ResetCommand("Reset", p); btnExit = new GodRestsCommand("God rests"); p.add(btnLight); p.add(btnLand); p.add(btnReset); p.add(btnExit); btnLight.addActionListener(this); btnLand.addActionListener(this); btnReset.addActionListener(this); btnExit.addActionListener(this); setBounds(100,100,400,200); setVisible(true); } //----------------------------------------- public void actionPerformed(ActionEvent e) { CommandFromGod obj = (CommandFromGod)e.getSource(); obj.Execute(); } //----------------------------------------- static public void main(String[] argv) { new TheWorld(); } }
这个例子中没有Recevier角色和Invoker角色,此处完全可以分离出这两种角色,这样的话似乎更复杂了!
发表评论
-
java.io包学习1
2008-11-27 10:23 1185转自:http://www.blogjava.net/cher ... -
java.io包学习
2008-11-27 10:22 12861. java.io 包中定义了多个流类型来实现输入和输出功 ... -
15、装饰模式(Decorator)
2008-11-25 11:57 723装饰模式(Decorator)使用原来被装饰的类的一个子类的实 ... -
14.1、安全合成模式和透明合成模式
2008-11-25 11:33 834安全合成模式代码: public interface Comp ... -
14. 合成模式(composite)
2008-11-25 11:27 1089合成模式(composite)把部分和整体的关系用树结构表示出 ... -
java八种基本类型
2008-11-24 11:55 5782Java语言提供了八种基本类型。六种数字类型(四个整数型,两个 ... -
命令模式(Command)例子2增加宏命令
2008-11-23 12:00 1214命令模式(Command)例子2增加宏命令 为julia的 ... -
命令(Command)模式例子2
2008-11-23 11:47 988命令(Command)模式例子2 -------- Audio ... -
命令(Command)模式
2008-11-23 10:59 95113、命令(Command)模式 命令模式( ... -
JDOM对xml文件的读写API
2008-11-18 11:05 1451根据jdom自带的例子总结 1. org.jdom.in ... -
JDOM对xml文件的读写
2008-11-18 10:19 20701. 读取例子 xml文件代码 <?xml ve ... -
java语言对观察者模式的支持
2008-11-17 17:32 82512.1 java语言对观察者模式的支持 ... -
Java Reflection API 简介
2008-11-16 12:40 1454在JDK中,主要由以下类来实现Java反射机制,这些类都位于j ... -
Java 语言的反射机制
2008-11-16 12:22 678在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属 ... -
模板方法模式中的方法
2008-11-15 22:50 74611.2 、模板方法模式中的方法 基本方法: 抽象方 ... -
模板方法模式的一个例子
2008-11-15 22:34 112311.1 模板方法例子 考虑一个银行存款例子 ... -
模板(Template Method)方法模式
2008-11-15 22:11 91411、模板(Template Method)方法模式 ... -
不变(Immutable)模式
2008-11-15 21:44 80810、不变(Immutable)模式 定义: ... -
桥梁(Bridge)模式
2008-11-15 13:01 10369、桥梁(Bridge)模式 桥梁模式的结构 ... -
门面模式(Facade)
2008-11-15 12:21 11208、门面模式(Facade) 门面角色(Facade): 供 ...
相关推荐
5.2CommandPattern(命令模式) 179 5.2.1定义 179 5.2.2现实中的实例——餐馆订菜 180 5.2.3C#实例——简单计算器 181 5.2.4Java实例——总开关 185 5.2.5优势和缺陷 189 5.2.6应用情景 189 5.3Interpreter...
5.2CommandPattern(命令模式) 179 5.2.1定义 179 5.2.2现实中的实例——餐馆订菜 180 5.2.3C#实例——简单计算器 181 5.2.4Java实例——总开关 185 5.2.5优势和缺陷 189 5.2.6应用情景 189 5.3Interpreter...
com.javapatterns.command 命令模式 com.javapatterns.command.swingundo 专题:Swing库中的命令撤销和恢复 com.javapatterns.composite 合成模式 com.javapatterns.decorator 装饰模式 com.javapatterns.dip ...
命令模式示例项目这个项目是命令模式的一个例子。 该项目还演示了模型-视图-控制器模式的使用。目标以某种形式使用命令模式在这个项目中; 命令模式用于模拟绘制程序。 重做示例由于项目模拟了一个绘制程序,每个...
包名command_pattern表示的是命令模式的简单例子 包名decorator_pattern.example_one表示的是装饰模式的简单例子1 包名decorator_pattern.example_2表示的是装饰模式的简单例子2(人穿什么衣服的例子,比较直观的...
第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式...
第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式...
第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式...
使用Java内建的观察者模式 java.util.Observable的黑暗面 设计箱内的工具 习题解答 …… 3 装饰者模式:装饰对象 4 工厂模式:烘烤OO的精华 5 单件模式:独一无二的对象 6 命令模式:封装调用 7 ...
设计模式之 Command(命令) 什么是将行为封装,Command 是最好的说明. 设计模式之 Observer(观察者) 介绍如何使用 Java API 提供的现成 Observer 设计模式之 Iterator(迭代器) 这个模式已经被整合入Java的...
连续模式 9600 8 /否 1个 没有任何 <CR> ANSI / WIN 离开 例子 var MTSICS = require ( 'mt-sics' ) ; var mtsics = new MTSICS ( { uri : 'tcp://192.168.1.1:4001' } ) ; mtsics . get_commands ( function ( ...
序言回到顶部↑Tcl为工具命令语言(Tool Command Language)的缩写。它其实是指两样东西:一种脚本语言,以及该脚本语言的解释器。该解释器可以很容易地嵌入到你的应用程序中。Tcl和与之关联的图形用户界面工具包(Tk)...
C#中利用GetOleDbSchemaTable获取数据库内表信息[原创] 如何解决ACCESS中SELECT TOP语句竟然返回多条记录的问题? Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM ...
3.2.3 重用用户操作处理函数:Command模式 3.2.4 保持对资源的唯一引用:Singleton模式 3.3 模型一视图一控制器 3.4 Web服务器端的MVC 3.4.1 不使用模式的Ajax Web服务器层 3.4.2 重构领域模型 3.4.3 从表现中分离...
包装盒内附 数据工具包。 更多信息 https://sites.google.com/a/android.com/opensource/release-features Android Android Android Android 盈利模式 Android 的 App Market 模式,软件开发者获得 7 成收入, 3 成...
如果不带任何参数,diskpart 命令将启动 diskpart 的 Windows 字符模式版本。 /add 创建新的分区。 /delete 删除现有分区。 device_name 要创建或删除分区的设备。设备名称可从 map 命令的输出...
5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明...
5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明...
internal: 在同一命名空间内可以访问。 2 .列举ASP.NET 页面之间传递值的几种方式。 答. 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer 3. 一列数的规则...