觀察著模式

2021-08-28 15:45:18 字數 958 閱讀 6505

<?php

/*** 觀察著模式

*//**

定義:物件間一種一對多的依賴關係,使得每當乙個物件改變狀態,則所有依賴於它的物件都會得到通知並自動 更新。

思想:將實際擴充套件操作,降低到子類

應用:登入成功後,傳送郵件、寫入日誌

*///主體介面

inte***ce observable

//主體

class login implements observable

public function detach(observer $observer)

}$this->observers = $new_observers;

}/**

* 外部統一訪問

*/public function notify()

}// //真實登入

// public function controllogin()

}//觀察者介面

inte***ce observer

abstract class loginobserver implements observer

public function update(observable $observable)

}abstract public function doupdate(login $login);

}//觀察者子類

class generallog extends loginobserver

}//觀察者子類

class sendemail extends loginobserver

}//客戶端

$login = new login();

new generallog($login);

new sendemail($login);

$login->notify();//執行觀察者類中方法

?>

觀察著模式

軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...

裝飾著模式

package com.henu.decorator 漢堡基類 author rock public abstract class humburger public abstract double getprice package com.henu.decorator 雞腿堡類 被裝飾者的初始狀態,...

裝飾著模式

裝飾著模式 裝飾者模式動態地將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。案例 有這樣乙個專案,做乙個餐廳訂餐系統。起初的 結構是這樣的。前面有很多beverage的繼承類,現在遇到的問題是牛奶的價錢 了,那麼所有相關的類,我們都要進行調整,比如milk,sugaran...