1. 程式人生 > >設計模式之命令模式 Command

設計模式之命令模式 Command

sta clas ide class open cli private 2017年 命令模式

介紹

技術分享

角色

技術分享

使用場景

技術分享

代碼實現

技術分享
public interface Command {

    //這個方法是一個返回結果為空的方法
    //實際項目中,可以根據需求設計多個不同的方法
    void execute();
}
抽象命令接口 技術分享
class ConcreteCommand implements Command{
    
    private Receiver receiver; //命令的真正執行者
    
    public ConcreteCommand(Receiver receiver) {
        super();
        this
.receiver = receiver; } @Override public void execute() { //真正之前或後,執行相關的處理 receiver.action(); } }
具體命令實現 技術分享
/**
 * 調用者/發起者
 * @author bzhx
 * 2017年3月14日
 */
public class Invoke {

    public Command command; //也可以通過容器List<Command>容納很多命令對象,進行批處理,數據庫底層事務管理就是類似的構造

    public
Invoke(Command command) { super(); this.command = command; } //業務方法,用於調用命令類的方法 public void call(){ command.execute(); } }
調用者 技術分享
/**
 * 真正的命令執行者
 * @author bzhx
 * 2017年3月14日
 */
public class Receiver {
    public void action(){
        System.out.println("Receiver.action()");
    }
}
真正命令的執行者 技術分享
public class Client {

    public static void main(String[] args) {
        Command c = new ConcreteCommand(new Receiver());
        Invoke i = new Invoke(c);
        
        i.call();
    }
}
測試

設計模式之命令模式 Command