ホームページ  >  記事  >  バックエンド開発  >  PHPオブザーバーパターンの実装コード_PHPチュートリアル

PHPオブザーバーパターンの実装コード_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:11:01868ブラウズ

コードは次のとおりです:

コードをコピーします コードは次のとおりです:

// 観察された抽象クラス
class 観察された実装 SplSubject{
protected $_name;
protected $_observers; 生成 // インスタンス化され、オブザーバー オブジェクトを生成します

public function __conStruct () {
$ this- & gt = new splobjectStorage ();
パブリック機能アタッチ(Splobserver $ observer) 者 // オブザーバー オブジェクトを削除します
Public Function Detach (Splobserver $ Observer) {

$ This- & GT ($ Observer);

// 通知メッセージ
public function Notice(){
foreach($this->_observers as $observer){
$observer->showMessage($this);

}

}

// 通常の方法: 値を設定する
public function setName($name){

$this->_name = $name; out Out Out Out Off ’’の使用を使用して使用しています。 publicパブリック関数のセッジ($ age){$ this-> _name、$ this-> age);


}

// オブザーバー抽象クラス
class Observer は SplObserver を実装します{
表示 // メッセージ プロンプトを表示します 表示 public function showMessage (splsubject $ obj) {

$ user = $ obj- & gt;


($ user === 'admin') ' $ user, '管理の背景 & lt; br/& gt;';
} else {
echo "こんにちは、'$ ユーザー' がユーザー リストに追加されました & lt; br/& gt;
// これは要約です親クラスから継承するメソッド

public function update(SplSubject $subject) {}


//個人の年齢を表示します
public function showAge($name,$age){
echo "<script>alert('$name's age is: $age')</script>";

}

}

$subject = new Observed(); // 監視対象オブジェクトを生成します
$observer = new Observer(); // オブザーバー オブジェクトを生成します
$subject->attach($observer); // オブザーバーをアタッチします観察された
$subject->setName('Zhang San'); //setName メソッドを呼び出します
/*

* 上記の setName を渡すと、$this->notify();

* $this を呼び出します->notify() は、$observer->showMessage($this) メソッド

* を呼び出します。これは、各オブザーバー オブジェクトの showMessage($obj) メソッドです。

*/
$subject->setName('admin ');

$subject->setAge(24);







http://www.bkjia.com/PHPjc/326995.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/326995.html

技術記事

コードは次のとおりです。 コードをコピーします。 コードは次のとおりです。 // 観察される抽象クラス class Observedimplements SplSubject{ protected $_name; protected $_observers; // オブザーバーをインスタンス化して生成します...





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。