有兩種模式:觀察者和裝飾者。兩者都使我能夠在完成某件事之後添加一個動作(或之前爲裝飾者)。但是它們的實現不同。所以什麼時候應該使用裝飾者或觀察者。什麼時候應該使用裝飾/觀察者?
到目前爲止,我想出了這一點:
裝飾:添加業務functionnality到會改變由裝飾服務所使用的實體的狀態的服務。
觀察員:更新視圖模型/ GUI,連接基礎設施服務,改變其他實體
例如,在一個預定的水平我有一個預定實體的狀態下,第一服務將創建預訂並標記爲不可用的住宿:客戶使用CC自動化支付觀察者
- 發送電子郵件給客戶/所有者裝飾
- 更新與可用性的住宿視圖/緩存:觀察者
- 標記預訂「必須被驗證或驗證」:裝飾
我說得對不對?
正如我所說的,對我來說它們有助於爲同一目的:添加功能到現有的業務流程。即使它不是同一種模式,目的也是一樣的。 – 2013-05-03 14:42:56
如果你只想「添加功能」,有很多方法可以做到,可能你不需要任何設計模式。面向對象的設計模式具有特定的和獨特的用途和用例,並且只能在這些情況下使用。 – lbalazscs 2013-05-05 21:42:09