命令模式
- 描述
- 基本使用
- 使用
描述
命令模式是一种体现高内聚的行为模式。
将整个请求封装成一个命令对象,由这个命令对象完成所需业务调用。
命令对象封装了该命令需要的所有逻辑,不需要调用方关注内部细节。
基本使用
- 定义抽象命令(所有命令都基于这个抽象命令定义)
public abstract class AbstractCommand {abstract void execute();
}
- 定义命令对象内要实际调用的业务对象
public interface IReceiver {void action();
}public class ReceiverA implements IReceiver {@Overridepublic void action() {System.out.println("ReceiverA action ....");}
}public class ReceiverB implements IReceiver {@Overridepublic void action() {System.out.println("ReceiverB action ....");}
}
- 定义两个具体的命令
public class CommandA extends AbstractCommand{private IReceiver receiver;public CommandA(IReceiver receiver) {this.receiver = receiver;}@Overridevoid execute() {System.out.println("commandA....");receiver.action();}
}public class CommandAB extends AbstractCommand{private IReceiver[] receivers;public CommandAB(IReceiver... receivers) {this.receivers = receivers;}@Overridevoid execute() {System.out.println("commandA....");for (IReceiver receiver : receivers) {receiver.action();}}
}
使用
public class Sample {public static void main(String[] args) {IReceiver receiverA = new ReceiverA();IReceiver receiverB = new ReceiverB();AbstractCommand command = new CommandA(receiverA);command.execute();AbstractCommand commandAb = new CommandAB(receiverA, receiverB);commandAb.execute();}
}