fantasy-java
我越发的感觉到你就是我生命中的精灵,翻转跳跃在我那空虚的时空;有人说世界上最美的是春天和爱情,在我眼中有你的地方就是最美的。
BlogJava
首页
新随笔
联系
聚合
管理
随笔-95 评论-31 文章-10 trackbacks-0
命令模式
/** */
/**
*
@author
LX
* 通用Reveiver类
*/
public
abstract
class
Receiver
{
//
抽象接收者,定义每个接收者必须完成的业务
public
abstract
void
doSomething();
//
撤销
public
abstract
void
undo();
}
/** */
/**
*抽象Command类
*
*/
public
abstract
class
Command
{
public
abstract
void
execute();
public
abstract
void
undo();
}
/** */
/**
*调用者类
*
*/
public
class
Invoker
{
private
Command command;
public
void
setCommand(Command command)
{
this
.command
=
command;
}
public
void
action()
{
this
.command.execute();
}
}
/** */
/**
*具体接收者
*
*/
public
class
ConcreteReceiver1
extends
Receiver
{
@Override
public
void
doSomething()
{
}
@Override
public
void
undo()
{
}
}
/** */
/**
*具体Command类
*
*/
public
class
ConcreteCommand1
extends
Command
{
private
Receiver receiver;
public
ConcreteCommand1(Receiver receiver)
{
this
.receiver
=
receiver;
}
@Override
public
void
execute()
{
receiver.doSomething();
}
@Override
public
void
undo()
{
receiver.undo();
}
}
/** */
/**
*测试类
*
*/
public
class
Test
{
public
static
void
main(String[] args)
{
Invoker invoker
=
new
Invoker();
Receiver receiver
=
new
ConcreteReceiver1();
//
定义接收者
Command command
=
new
ConcreteCommand1(receiver);
//
定义一个发送给接收者的命令
invoker.setCommand(command);
//
把命令交给调用者去执行
invoker.action();
}
}
//
更完美的Command类
public
abstract
class
Command
{
//
定义一个子类的全局共享变量
protected
final
Receiver receiver;
//
实现类必须定义一个接收者
public
Command(Receiver receiver)
{
this
.receiver
=
receiver;
}
//
每个命令类都必须有一个执行命令的方法
public
abstract
void
execute();
}
public
class
ConcreteCommand1
extends
Command
{
//
设置自己的默认构造
public
ConcreteCommand1()
{
super
(
new
ConcreteReceiver1());
}
//
设置新的接收者
public
ConcreteCommand1(Receiver receiver)
{
super
(receiver);
}
//
业务处理
@Override
public
void
execute()
{
super
.receiver.doSomething();
}
}
public
class
Test
{
public
static
void
main(String[] args)
{
Invoker invoker
=
new
Invoker();
Command command
=
new
ConcreteCommand1();
//
无需知道具体接收者
invoker.setCommand(command);
invoker.action();
}
}
posted on 2010-09-06 23:42
朔望魔刃
阅读(260)
评论(0)
编辑
收藏
所属分类:
设计模式&&数据结构
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
节点<一>
存储
"插件"的行为分析
创建模式
你是我的"朋友"
命令模式
命令模式
深入浅出命令模式~
再理解单例
装饰者模式学习
<
2010年9月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Android
flex(1)
git
gradle
IHE&DICOM&HL7的开源框架(1)
java(40)
JavaScript(2)
maven(1)
mybatis
netty(3)
python(3)
spring
svn(1)
即时通信(4)
各种整合
各种配置(9)
数据库(2)
设计模式&&数据结构(11)
随笔档案
2018年8月 (1)
2018年3月 (1)
2018年1月 (1)
2017年12月 (3)
2017年11月 (6)
2017年10月 (1)
2017年8月 (2)
2017年7月 (1)
2017年6月 (1)
2017年5月 (1)
2017年2月 (1)
2016年12月 (3)
2016年10月 (1)
2016年9月 (2)
2015年12月 (1)
2015年7月 (2)
2015年5月 (1)
2015年2月 (3)
2015年1月 (1)
2014年12月 (2)
2014年7月 (1)
2014年5月 (4)
2014年3月 (1)
2013年9月 (6)
2013年8月 (1)
2013年7月 (3)
2013年4月 (1)
2012年7月 (2)
2012年6月 (4)
2012年5月 (2)
2012年1月 (1)
2011年12月 (2)
2011年11月 (2)
2011年9月 (1)
2011年6月 (1)
2011年5月 (1)
2011年3月 (4)
2011年2月 (2)
2010年12月 (2)
2010年9月 (9)
2010年8月 (4)
2010年4月 (1)
2010年3月 (1)
2010年1月 (2)
文章分类
文章(2)
生活(2)
英语学习(3)
诗歌(3)
文章档案
2011年1月 (2)
2010年12月 (3)
2010年11月 (1)
2010年10月 (1)
2010年9月 (2)
2010年8月 (1)
收藏夹
技术文章(2)
娱乐博客
周德东
郭敬明
韩寒
鬼谷女
牛博
其实我是一个程序员
博客大巴~~
很牛的C++程序员
梦幻之旅
达内恩师
雪山飞鹄
高性能网站专家 淘宝 阿里架构师
搜索
最新评论
1. re: jsp通过js按钮导出word小结
下达
--q
2. re: linux安装mysql后root无法登录
谢啦
--galo
3. re: openfire_3.9.3集群配置
我这根本就不显示hazelcast 这个插件包。请教下各位大神。
--openfre
4. re: openfire_3.8.2集群配置[未登录]
hazelcast-cache-config.xml 文件每一台都要配4行ip吗
--wp
5. re: openfire_3.8.2集群配置
评论内容较长,点击标题查看
--朔望魔刃
阅读排行榜
1. linux安装mysql后root无法登录(17828)
2. maven三种打包插件(15113)
3. openfire_3.8.2集群配置(9845)
4. 联想y510p网卡设置(8551)
5. swing日期控件(6839)
评论排行榜
1. openfire_3.8.2集群配置(17)
2. dcm4chee部署安装(3)
3. Java Service Wrapper工具把Java程序转换为Windows服务小结(2)
4. jsp通过js按钮导出word小结(2)
5. XML Schema<一>(1)