將請求封裝成乙個物件,從而讓使用者使用不同的請求吧客戶端引數化。請求排隊或者記錄請求日誌,以及支援可撤銷的操作
系統需要將請求呼叫者和請求接收者解耦,使得呼叫者和接收者不直接互動
系統需要在不同的時間指定請求、將請求排隊和執行請求
系統需要支援命令的撤銷(undo)操作和恢復(redo)操作
系統需要將一組操作組合在一起
receiver接受者:receiver是真正執行命令的物件。任何類都可能成為乙個接收者,只要它能夠實現命令要求實現的相應功能
command命令角色:定義命令的介面,宣告具體命令類需要執行的方法。這是乙個抽象角色
concretecommand具體命令角色:命令介面的具體實現物件,通常會持有接收者,並呼叫接收者的功能來完成命令要執行的操作
invoker請求者角色:負責呼叫命令物件執行請求,通常會持有命令物件(可以持有多個命令物件)。invoker是client真正觸發命令並要求命令執行相應操作的地方(使用命令物件的入口)
首先依舊是需要乙個介面
public
inte***ce
command
然後是請求類
public
class
request
public
void
get(
)}
實現介面的子類
public
class
requestget
implements
command
@override
public
void
execute()
}
public
class
requestset
implements
command
@override
public
void
execute()
}
命令呼叫類
public
class
usecommand
}
測試類
public
class
test
}
命令模式其主要作用是解耦合 移動架構 原型模式
用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件 以為是複製乙個一摸一樣的物件出來,所以說會在這個複製出來的物件上進行操作,避免破壞原來那乙個物件 在原型模式中,很多時候是由於為了操作方便,例如在工廠模式中如果需要對傳入的物件做判斷,從而呼叫其方法的時候,這樣的話就會使得工廠的 異常難...
移動架構 責任鏈模式
使多個物件都有機會處理請求,從而避免了請求的傳送者和接受者之間的耦合關係,將這些物件形成一條鏈,並沿著這條鏈傳遞該請求,直到有物件處理它為止 多個物件能夠處理同一請求,具體處理則在執行時動態確定 在請求處理者不明確的時候向多個物件提交同乙個請求 需要動態制定一組物件處理請求 這裡使用乙個傳遞紙條的過...
移動架構 直譯器模式
直譯器是一種用的比較少的行為模式,其提供了一種解釋語言的語法,或者表示式的方式。該模式定義了乙個表示式的介面 簡單的語言需要解釋執行而且可以將該語言中的語句表示乙個抽象的語法樹 對於某個特定的領域出現的不斷重複的問題,可以轉換成一種語法規則下的語句 必須有乙個抽象介面 構建語法樹 優點 每個語法都要...