在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(command pattern)
类图

public interface ICommand {
void execute();
}public class ConcreteCommand implements ICommand {
private Receiver receiver;
public ConcreteCommand(Receiver receiver) {
this.receiver = receiver;
}
@Override
public void execute() {
this.receiver.action();
}
}public class Receiver {
public void action() {
System.out.println("receiver do something");
}
}public class Invoker {
private ICommand command;
public Invoker(ICommand command) {
this.command = command;
}
public void invoke() {
this.command.execute();
}
}/*
* 命令(Command)模式
* 请求与执行 分离
* 可以多个命令接口的实现类,隐藏真实的被调用方
*/
public class Test {
public static void main(String[] args) {
Receiver receiver = new Receiver();//真正的执行者
ICommand command = new ConcreteCommand(receiver);//具体命令
Invoker invoker = new Invoker(command );//调用者
invoker.invoke();
}
}以上就是Java实现命令(Command)模式的示例代码的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号