命令模式
来源:互联网 发布:在淘宝里怎么买东西 编辑:程序博客网 时间:2024/06/13 19:36
1.命令控制
namespace CommandPattern
{
/*命令模式:当有客户端发送了一系列的命令或请求,去要求某个对象实现什么操作,
* 可使用命令模式,相当于多个命令发给一个对象。
*
* 这一点和观察者模式非常的类似。观察者模式也是某个对象,发出消息,然后由中
* 间对象通知观察者然后去做什么,封装的是要执行操作的对象。
* 而命令模式,则是将各个操作封装成类,然后告知某个对象该做什么。
*
* 两者的区别是封装的角度不同,但有异曲同工之妙
*/
public abstract class Command
{
protected Student student;
public Command(Student studentObj)
{
student = studentObj;
}
public abstract void ExecuteCommand();
}
/// <summary>
/// 做语文作业类
/// </summary>
class YuWen : Command
{
public YuWen(Student studentObj)
: base(studentObj)
{ }
public override void ExecuteCommand()
{
student.DoYuWen();
}
}
/// <summary>
/// 做数学作业
/// </summary>
class ShuXue : Command
{
public ShuXue(Student studentObj)
: base(studentObj)
{ }
public override void ExecuteCommand()
{
student.DoShuXue();
}
}
/// <summary>
/// 命令的具体实施者
/// </summary>
public class Student
{
public void DoYuWen()
{
Console.WriteLine("做语文作业");
}
public void DoShuXue()
{
Console.WriteLine("做数学作业");
}
}
/// <summary>
/// 命令的发布者
/// </summary>
public class Teacher
{
protected List<Command> list = new List<Command>();
/// <summary>
/// 安排作业
/// </summary>
/// <param name="comm"></param>
public void Arrange(Command comm)
{
if (comm.ToString() != "CommandPattern.ShuXue")
list.Add(comm);
}
/// <summary>
/// 要求实施
/// </summary>
public void Release()
{
foreach (var com in list)
com.ExecuteCommand();
}
}
}
2.调用
static void Main(string[] args)
{
//实例化学生对象
Student stu = new Student();//命令执行者
Command com1 = new YuWen(stu);
Command com2 = new ShuXue(stu);
Command com3 = new YuWen(stu);
Teacher tech = new Teacher();//设置作业
tech.Arrange(com1);
tech.Arrange(com2);
tech.Arrange(com3);
tech.Release();
Console.ReadKey();
}
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 单例模式:单线程和多线程并发情况下的对象创建
- 关于JavaScript与Dojo的一点备忘
- ubuntu桌面配置 | dota类游戏
- 迭代器模式:对象索引器
- 职责链模式
- 命令模式
- 桥接模式
- android 语音识别接口开发。
- 有一种悬念叫嘎然而止
- linux uniq
- 文本处理命令—sort、uniq、wc、expand、unexpand、iconv、dos2unix、unix2dos
- linux sort
- 一辈子很短何苦为难别人
- 库函数和系统调用