1. 程式人生 > >命令模式的更多用途:佇列請求

命令模式的更多用途:佇列請求

  命令可以將運算塊打包(一個接受者和一組動作),然後將它傳來傳去,就像是一般的物件一樣。現在,即使在命令物件被建立許久之後,運算依然可以被呼叫。事實上,它甚至可以在不同的執行緒中被呼叫。我們可以利用這樣的特性衍生一些應用,例如:日程安排、執行緒池、工作佇列等。

  想象有一個工作佇列:你在某一端新增命令,然後另一端則是執行緒。執行緒進行下面的工作:從佇列中取出一個命令,呼叫它的execute()方法,等待這個呼叫完成,然後將此命令物件丟棄,再取出下一個命令.....

  請注意, 工作佇列類和驚醒計算的物件之間完全是解耦的。此刻執行緒可能在進行財務運算,下一個卻在讀取網路資料。工作佇列物件不在乎到底做些什麼,他們只知道取出命令物件,然後呼叫其execute()方法。類似的,它們只要是實現命令模式的物件,就可以放入 佇列裡,當執行緒可用時,就呼叫此物件的execute()方法。

  轉載自head frist 設計模式第五章