將乙個請求封裝為乙個物件,從而使我們可用不同的請求對客戶進行引數化;對請求排隊或者記錄請求日誌,以及支援可撤銷的操作。命令模式又稱為動作(action)模式或事務(transaction)模式。
①系統需要將請求呼叫者和請求接收者解耦,使得呼叫者和接收者不直接互動。
②系統需要在不同的時間指定請求、將請求排隊和執行請求。
③系統需要支援命令的撤銷(undo)操作和恢復(redo)操作。
④系統需要將一組操作組合在一起,即支援巨集命令。
①command介面類
/**
* @auther zx
* @date 2018/6/19 11:12
*/public inte***ce icommand
②具體命令類
/**
* @auther zx
* @date 2018/6/19 11:15
*/public class concretecommand implements icommand
@override
public void execute(string content)
@override
public void undo(string content)
}
③命令執行類
/**
* @auther zx
* @date 2018/6/19 11:15
*/public class receiver
public void undo(string content)
}
④命令呼叫類
/**
* @auther zx
* @date 2018/6/19 11:22
*/public class invoker
public void exexute(string content)
public void undo(string content)
}
⑤client檢測類
/**
* @auther zx
* @date 2018/6/19 11:31
*/public class client
}
效果圖:
當然多個命令可以編輯多個具體命令類,然後相同的呼叫;
java設計模式之命令模式
意圖 將乙個請求封裝為乙個物件,從而可用不同的請求對客戶進行引數化 對請求排隊或記錄日誌,以及支援可撤銷的操作 動機 將 發出請求的物件 和 接收與執行這些請求的物件 分隔開來。效果 1 command模式將呼叫操作的物件和實現該操作的物件解耦 2 可以將多個命令裝配成乙個復合命令,復合命令是com...
java設計模式之命令模式
定義 把方法呼叫封裝起來,命令模式請求或者操作封裝到乙個物件之中,呼叫的物件需要知道是如何實現的,只要明白如何使用就好。應用場景 記錄日誌,是用這些命令實現撤銷或者恢復的 命令模式對命令進行封裝,發出和執行分派給兩個不同的物件 把請求命令和執行命令分開了 這樣做的好處是 a 便於新的命令加入 b 命...
設計模式之命令模式(java)
命令模式,其實就是進一步封裝,把方法呼叫封裝起來,head first中舉了乙個很生動的例子,飯店中點餐的流暢如下 客戶點了訂單並交給服務端,然後女招待把訂單交給大廚的師傅,大師傅最後呈現出一道可口的菜餚。在這個過程中,客戶只需要知道來飯店點好選單就可以等吃飯了,服務員也是只需要知道把訂單交給大廚,...