命令模式详解及示例代码演示
2016-02-19 15:54
295 查看
【命令模式详解及示例代码演示 兄弟连兄弟会 www.itxdh.com 企鹅群:499956522 高端人才培养就到【兄弟连兄弟会】纯免费的高端IT人才培养】
俺有一个MM家里管得特别严,没法见面,只好借助于她弟弟在我们俩之间传送信息,她对我有什么指示,就写一张纸条让她弟弟带给我。这不,她弟弟又传送过来一个COMMAND,为了感谢他,我请他吃了碗杂酱面,哪知道他说:“我同时给我姐姐三个男朋友送COMMAND,就数你最小气,才请我吃面。”, 命令模式:命令模式把一个请求或者操作封装到一个对象中。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。命令模式允许请求的一方和发送的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否执行,何时被执行以及是怎么被执行的。系统支持命令的撤消。
using System;
using System.Collections.Generic;
using System.Text;
namespace 命令模式
{
class Program
{
static void Main(string[] args)
{
Receiver r = new Receiver();
Command c = new ConcreteCommand(r);
Invoker i = new Invoker();
// Set and execute command
i.SetCommand(c);
i.ExecuteCommand();
Console.Read();
}
}
abstract class Command
{
protected Receiver receiver;
public Command(Receiver receiver)
{
this.receiver = receiver;
}
abstract public void Execute();
}
class ConcreteCommand : Command
{
public ConcreteCommand(Receiver receiver)
:
base(receiver) { }
public override void Execute()
{
receiver.Action();
}
}
在兄弟连兄弟会6个月的时间里,你将能精通JAVA、PHP、andriod、IOS其中两门及两门以上技术,轻松开发高并发、大负载应用程序。
class Receiver
{
public void Action()
{
Console.WriteLine("执行请求!");
}
}
class Invoker
{
private Command command;
public void SetCommand(Command command)
{
this.command = command;
}
public void ExecuteCommand()
{
command.Execute();
}
}
}
兄弟连IT教育在九周年之际,隆重推出了兄弟会。兄弟会集中兄弟连IT教育平台资源,联合互联网企业,由公司创始人和技术导师组成高强团队,专业培养复合型高端IT人才,给普通程序员一个更高的发展空间,在兄弟连兄弟会6个月的时间里,你将能精通JAVA、PHP、andriod、IOS其中两门及两门以上技术,轻松开发高并发、大负载应用程序。
俺有一个MM家里管得特别严,没法见面,只好借助于她弟弟在我们俩之间传送信息,她对我有什么指示,就写一张纸条让她弟弟带给我。这不,她弟弟又传送过来一个COMMAND,为了感谢他,我请他吃了碗杂酱面,哪知道他说:“我同时给我姐姐三个男朋友送COMMAND,就数你最小气,才请我吃面。”, 命令模式:命令模式把一个请求或者操作封装到一个对象中。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。命令模式允许请求的一方和发送的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否执行,何时被执行以及是怎么被执行的。系统支持命令的撤消。
using System;
using System.Collections.Generic;
using System.Text;
namespace 命令模式
{
class Program
{
static void Main(string[] args)
{
Receiver r = new Receiver();
Command c = new ConcreteCommand(r);
Invoker i = new Invoker();
// Set and execute command
i.SetCommand(c);
i.ExecuteCommand();
Console.Read();
}
}
abstract class Command
{
protected Receiver receiver;
public Command(Receiver receiver)
{
this.receiver = receiver;
}
abstract public void Execute();
}
class ConcreteCommand : Command
{
public ConcreteCommand(Receiver receiver)
:
base(receiver) { }
public override void Execute()
{
receiver.Action();
}
}
在兄弟连兄弟会6个月的时间里,你将能精通JAVA、PHP、andriod、IOS其中两门及两门以上技术,轻松开发高并发、大负载应用程序。
class Receiver
{
public void Action()
{
Console.WriteLine("执行请求!");
}
}
class Invoker
{
private Command command;
public void SetCommand(Command command)
{
this.command = command;
}
public void ExecuteCommand()
{
command.Execute();
}
}
}
兄弟连IT教育在九周年之际,隆重推出了兄弟会。兄弟会集中兄弟连IT教育平台资源,联合互联网企业,由公司创始人和技术导师组成高强团队,专业培养复合型高端IT人才,给普通程序员一个更高的发展空间,在兄弟连兄弟会6个月的时间里,你将能精通JAVA、PHP、andriod、IOS其中两门及两门以上技术,轻松开发高并发、大负载应用程序。
相关文章推荐
- 编程中发现的小bug记录下来,提醒自己,也帮助大家
- asp.net无刷新上传(带预览)
- 详细分析spring与struts2的整合原理
- 深入理解Java:注解(Annotation)自定义注解入门
- python实现的ftp自动上传下载程序(支持目录递归操作)----转
- c++异常处理机制
- C语言文件存取
- poj2195 Going Home
- C# 线程间操作无效: 从不是创建控件“receivemsg”的线程访问它。
- Java内存管理
- javaWeb中表示路径的字符串里面首斜杠'/'是什么意思
- 蓝桥杯(Java) 入门训练 序列求和
- hdu2564 java
- 如何修改Myeclipse的JSP模板
- 如何应对身边的烂代码
- Eclipse--android studio 项目转移(移植)
- 深入理解Java:注解(Annotation)基本概念
- java线程的wait方法和notify方法的运用
- leetcode刷题系列C++-4sum
- Java中线程的创建有两种方式