設計模式之命令模式

2021-09-26 03:01:13 字數 1582 閱讀 5838

簡介:命令模式(command pattern)是一種資料驅動的設計模式,它屬於行為型模式。在軟體系統中,「行為請求者」與「行為實現者」通常呈現一種「緊耦合」。請求以命令的形式包裹在物件中,將一組行為抽象為物件,並傳給呼叫物件,實現二者之間的松耦合,下面將用乙個買賣商品相關的案例進一步深入了解。

優點: 1、降低了系統耦合度。 2、新的命令可以很容易新增到系統中去。3、呼叫同一方法實現不同的功能

缺點:使用命令模式可能會導致某些系統有過多的具體命令類

概要設計:我們首先建立作為命令的介面 order,然後建立作為請求的 stock 類。實體命令類 buystock 和 sellstock,實現了 order 介面,將執行實際的命令處理。建立作為呼叫物件的類 broker,它接受訂單並能下訂單。

broker 物件使用命令模式,基於命令的型別確定哪個物件執行哪個命令。commandpatterndemo,我們的演示類使用 broker 類來演示命令模式。

步驟 1

建立乙個命令介面

public

inte***ce

order

步驟 2

建立乙個請求類。

public

class

stock

public

void

sell()

}

步驟 3

建立實現了 order 介面的實體類。

public

class

buystock

implements

order

public

void

execute()

}

public

class

sellstock

implements

order

public

void

execute()

}

步驟 4

建立命令呼叫類。

public

class

broker

public

void

placeorders()

orderlist.

clear();}}

步驟 5

使用 broker 類來接受並執行命令。

public

class

commandpatterndemo

}

結果

設計模式之命令設計模式

先來看一下命令模式的類圖 乍一看好像類很多,其實我們逐個分析他們。類圖中存在的類可以分為 invoker icommand conceretecommand receiver invoker類 上層直接調取invoker類 icommand 是對命令的抽象 conceretecommand 是命令的...

設計模式之命令模式

command pattern 將請求封裝成物件,這可以讓你使用不同的請求,佇列,或者是日誌請求來引數化其他物件,命令模式也可以支援撤銷操作。命令模式有兩種實現方式 1.在命令管理器中提供設定當前命令接受者的方法,當執行訊息或者是有訊息壓入的時候直接將命令傳送給當前設定的接受者。2.在命令管理器中建...

設計模式之命令模式

當我們有一台多功能的印表機,然後通過電腦直接進行任務,如圖 如果通過這樣的設計直接去呼叫多功能一體機的功能,就會存在此時此刻只能進行乙個任務,不允許有多個客戶端同時操作.那麼現在我們就需要考慮一種新的設計模式,叫做命令設計模式。命令設計模式 將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行...