2014-07-24 140 views
0

我最近研究了可觀察模式,並且理解事物如何工作和概念。我在應用程序中也玩過它,但我想知道如何在使用PHP應用程序時使用它,因爲這是我的主要目的。帶有觀察者模式的插件

直到現在我還沒有找到任何體面的例子。我想了解使用observable製作插件的概念,並且一個好的和簡單的例子會很好。

通過製作一個插件我的意思是有一個標準的應用程序,並希望爲每個客戶端做一些特定的東西,因爲不是所有的客戶端都要求相同的東西,我不能給他們所有的相同的應用程序,製作一個標準的應用程序併爲每個客戶端進行配置,我知道這樣的東西被稱爲插件,可以通過觀察者來完成。

回答

0

如果您想根據用戶或應用程序/服務操作實施某種自定義觸發器/操作,Observer/Observable模式將非常合適。

例如,身份/認證服務可能會使用某種觀察者的,讓當一些用戶進行身份驗證,或者一些用戶已註冊第三方插件做一些實現可插入式架構......

它也應該在用戶界面中工作,因爲您可能能夠顯示菜單或基於用戶交互添加一些可視化組件。

0

如果你想製作一個非常免費的基於插件的應用程序,你可能想要做一個稍微不同的版本。

實施集中式事件控制。

每個插件(作爲您的控制器)在那裏註冊以通知某些事件。

現在,如果您想訪問某些功能,只需通過該中央事件控件調度特定事件即可。您不再需要知道哪個插件會響應您的事件,您只需要知道該事件的界面以及您將獲得的響應形式。

現在多個插件可以註冊一個事件,覆蓋或擴展其他插件的結果。或者只是允許全新的事件。

這個應用程序結構需要一點耐心來正確創建所有需要的類,但最終產品是非常分離的 - >靈活。把它看作MVC的一種形式,控制器不需要彼此瞭解,他們只是知道在哪裏以非常通用的形式提問。

(聽說Zend2嘗試類似的做法?)

+0

謝謝你,讓有些事情我不清楚,但我不這麼先進的應用網絡,因爲我最近開始,我仍然無法理解一些事情,可能你給我一個從你想要一些功能的標準應用程序中添加她的路徑的小例子,看看事情的順序? –

+0

這遠遠超過了這個聊天。你真的應該找一些關於這個主題的書。我會選擇「頭等頭」系列,他們有一本關於模式的非常好的和簡單的書。 http://www.headfirstlabs.com/books/hfdp/ – ToBe