命令模式

在软件系统中,行为的请求者和行为的执行者通常是一种"紧耦合",命令模式的产生就是为了实现他们之间的"松耦合"

在命令模式中,通常包含以下几种角色:

1、ICommond:

定义命令的接口,声明命令的方法。

2、Commond

定义具体的命令,里面通常会包含一个执行者

3、Receiver

行为的执行者

4、Invoker

行为请求者,通常包含一个命令对象,也可包括多个命令对象,使用list组织起来

5、Client

创建具体的命令对象,并且设置命令对象的接收者。注意这个不是我们常规意义上的客户端,而是在组装命令对象和接收者,或许,把这个Client称为装配者会更好理解,因为真正使用命令的客户端是从Invoker来触发执行。

下面就来用java代码实现这些设计模式:

定义ICommond

public interface ICommond
{
	public void execute();
}

定义Receiver

public class Receiver
{
	public void doSome()
	{
		System.out.println("正在做某事....");
	}
}



定义Commond

public class Commond implements ICommond
{

	private Receiver receiver;
	
	public Commond(Receiver receiver)
	{
		this.receiver=receiver;
	}
	@Override
	public void execute()
	{
		// TODO Auto-generated method stub
		receiver.doSome();
	}

}

定义Invoker

public class Invoker
{
	private ICommond commond;
	public Invoker(ICommond commond)
	{
		this.commond=commond;
	}
	
	public void doSome()
	{
		commond.execute();
	}
}


定义Client

public class Client
{
	public static void main(String[] args)
	{
		Receiver receiver=new Receiver();
		Commond commond=new Commond(receiver);
		Invoker invoker=new Invoker(commond);
		invoker.doSome();
		
	}
}


你可能感兴趣的:(命令模式)