`

Command 命令 行为模式

阅读更多

   Command 命令 行为模式,将一个请求封装为一个对象,从而你可以用不同的请求对客户端进行参数化、对请求排队或记录请求日志,以及支持Redo,Undo操作。

 

   PureMVC的Controller 就是用Command模式实现的,Command模式有一下5个元素

   1、命令接口

   2、具体命令

   3、接受者

   4、客户

   5、调用者

 

 



 命令接口是命令模式的重要组成部分,它允许鞠勇不同实现的所有命令都使用统一的接口,也就是,命令的调用者不知道命令的具体实现,就像我们开灯或关灯,但是我们并不知道灯的打开和关闭具体是如何实现的 。

 

以下的例子摘自《Actionscrption 3 设计模式》

 

 最简单的命令接口通常是一个excute()方法,用于运行被请求的操作,代码如下:

 

 

ICommand.as

package {
	public interface ICommand {
		function excute():void;
	}
}
 

   这时我们需要定义支持撤销的命令和重做的命令,代码如下:

 

 

IUndoableCommand .as

package {
	public interface IUndoableCommand extends ICommand {
		function undo();
	}
}

 

 

IRedoableCommand .as

package {
	public interface IRedoableCommand extends ICommand {
		function redo();
	}
}

 

    通常具体的命令需要一个接受者,就是要对他操作的对象,PureMVC的Command要传进一个Notification,通过facade.reciveMediator()来取得一个操作对象。这里我们就在具体构造函数里,传进一个参数来作为操作对象。

 

RotateColckwiseCommand.as

package {
	import flash.display.*;
	public class RotateColckwiseCommand implements ICommand {
		private var receiver:DisplayObject;
		public function RotateColckwiseCommand(receiver:DisplayObject) {
			this.receiver = receiver;
		}
		
		public function execute():void {
			receiver.rotation += 20;
		}
	}
}
 

   当然也可反向旋转的命令

 

 

 

RotateCounterColckwiseCommand.as

package {
	import flash.display.*;
	public class RotateCounterColckwiseCommand  implements ICommand {
		private var receiver:DisplayObject;
		public function RotateCounterColckwiseCommand (receiver:DisplayObject) {
			this.receiver = receiver;
		}
		
		public function execute():void {
			receiver.rotation -= 20;
		}
	}
}

 

   现在来创建一个放大对象的命令

 

 

ScaleUpCommand.as

package {
	import flash.display.*;
	public class ScaleUpCommand  implements ICommand {
		private var receiver:DisplayObject;
		public function ScaleUpCommand (receiver:DisplayObject) {
			this.receiver = receiver;
		}
		
		public function execute():void {
			receiver.scaleX += 0.1;
			receiver.scaleY += 0.1;
		}
	}
}

    还有个缩小对象的命令:

 

 

ScaleDownCommand .as

package {
	import flash.display.*;
	public class ScaleDownCommand  implements ICommand {
		private var receiver:DisplayObject;
		public function ScaleDownCommand (receiver:DisplayObject) {
			this.receiver = receiver;
		}
		
		public function execute():void {
			receiver.scaleX -= 0.1;
			receiver.scaleY -= 0.1;
		}
	}
}
 

 

 ............................................

 

 

 

  • 大小: 44.8 KB
分享到:
评论

相关推荐

    (行为型模式) Command 命令模式

    ### (行为型模式) Command 命令模式 #### 概述 在软件工程领域,设计模式被广泛地应用于解决常见的编程难题。其中,“Command”(命令)模式是一种行为型设计模式,它允许将请求封装成对象,从而使你能够用不同的...

    Command命令模式介绍.docx

    Command命令模式是一种常用的设计模式,属于对象行为型模式之一。它的核心思想在于将请求封装成一个对象,从而让发出请求的对象和执行请求的对象解耦。这种方式有助于实现软件模块之间的低耦合度,并提高了系统的...

    设计模式之Command(命令)模式

    Command模式是一种行为设计模式,它将请求封装为一个对象,使得可以使用不同的请求、队列或者日志请求,同时支持可撤销的操作。这种模式在软件工程中广泛应用于解耦请求的发送者和接收者,使系统更加灵活和易于维护...

    命令模式(Command模式)

    命令模式是一种行为设计模式,它将请求封装为一个对象,使得我们可以使用不同的请求、队列或者记录请求日志,还可以支持可撤销的操作。在命令模式中,我们创建表示各种操作的类以及能执行这些操作的对象。这种模式的...

    设计模式之命令模式(Command Pattern)

    命令模式是一种行为设计模式,它将请求封装成独立的对象,使得可以使用不同的请求、队列请求、记录请求历史以及支持可撤销的操作。这种模式在软件工程中被广泛应用,尤其是在需要解耦请求发起者和接收者时,提高了...

    Command 命令模式

    命令模式是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列请求、或者记录请求日志。在软件工程中,命令模式的应用广泛,尤其是在处理事件驱动系统或者需要解耦调用者与被调用者时。这种...

    C++设计模式代码资源23_Command_命令模式.zip

    命令模式是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列或者记录请求日志,同时支持可撤销的操作。在C++编程中,命令模式是一种非常实用的设计模式,能够帮助我们实现松耦合的系统,...

    设计模式之命令模式(Command)

    命令模式是一种行为设计模式,它的主要目的是将请求者与接收者解耦,使得请求的发起者无需知道哪个对象会执行这个请求,同时也让系统更容易扩展。这种模式在软件工程中广泛应用,特别是在事件驱动和分布式系统中。 ...

    C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式 (Level 300)

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在C#编程中,这种模式常用于解耦调用者和接收者,提高代码的灵活...

    命令模式command pattern

    命令模式(Command Pattern)是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列请求,或者支持可撤销的操作。在Java中实现命令模式,我们可以利用面向对象编程的特性来构建系统,使得...

    设计模式C++学习之命令模式(Command)

    命令模式是一种行为设计模式,它将请求封装为一个对象,使得可以使用不同的请求、队列或者日志请求,也可以支持可撤销的操作。在C++中,命令模式的应用可以帮助我们更好地组织代码,提高代码的可扩展性和可维护性。...

    命令模式_Command

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在IT行业中,命令模式广泛应用于软件架构和系统设计,以提高代码...

    [行为模式] head first 设计模式之命令模式(Command)

    【行为模式】Head First 设计模式之命令模式(Command) 命令模式是一种行为设计模式,它将请求封装为一个对象,从而使我们能支持可撤销的操作、参数化对象以及将请求排队等高级操作。在Head First的设计模式书中,...

    WPF Binding绑定 Command命令基础学习源码

    1. **ICommand接口**:这是定义命令行为的基础,包含Execute和CanExecute方法。Execute执行命令逻辑,CanExecute返回一个布尔值,表示命令当前是否可执行。 2. **RoutedCommand和 RelayCommand**:RoutedCommand是...

    C++设计模式课件23_Command_命令模式.pdf

    **命令模式(Command Pattern)**是一种行为型设计模式,它将请求封装成对象,从而使你能够用不同的请求对客户端进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。在命令模式中,请求是以命令的形式...

    [行为型模式]命令模式的理解

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式常用于解耦发出命令的对象(调用者)与...

    C#面向对象设计模式纵横谈\15 行为型模式Command命令模式.zip

    在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第15节:行为型模式Command命令模式

    命令(command)模式

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求,以及支持可撤销的操作。这种模式在IT行业中广泛应用于构建灵活、可扩展的系统,因为它允许在...

    command 模式的c++实现

    命令模式是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列或者日志请求,也可以支持可撤销的操作。在C++中实现命令模式,可以有效地解耦调用者和接收者,使系统更加灵活和易于维护。 #...

    Command命令模式介绍[参照].pdf

    Command命令模式是一种面向对象的设计模式,属于行为设计模式,它主要解决了在软件开发中行为请求者与行为实现者之间的紧密耦合问题。这种耦合可能导致系统难以维护和扩展。通过Command模式,我们可以将请求封装为一...

Global site tag (gtag.js) - Google Analytics