php設計模式-觀察者模式
阿新 • • 發佈:2018-12-11
觀察者模式(Observer),當一個物件狀態發生改變時,依賴它的物件全部會收到通知,並自動更新。
【觀察者模式的優點和缺點】
觀察者模式的優點:
1.觀察者和主題之間的耦合度較小;
2.支援廣播通訊;
觀察者模式的缺點:
由於觀察者並不知道其它觀察者的存在,它可能對改變目標的最終代價一無所知。這可能會引起意外的更新。
【觀察者模式適用場景】
當一個抽象模型有兩個方面,其中一個方面依賴於另一個方面。
當對一個物件的改變需要同時改變其它物件,而不知道具體有多少個物件待改變。
當一個物件必須通知其它物件,而它又不能假定其它物件是誰。換句話說,你不希望這些物件是緊密耦合的。
觀察者模式在PHP中的應用場合:在web開發中觀察者應用的方面很多
典型的:使用者註冊(驗證郵件,使用者資訊啟用),購物網站下單時郵件/簡訊通知等
程式碼例項
SplSubject介面 被觀察的物件
interface SplSubject { public function attach(SplObserver $observer); public function detach(SplObserver $observer); public function notify(); }
SplObserver 介面,它代表著充當觀察者的物件
interface SplObserver { public function update(SplSubject $subject); }