php のオブザーバー パターンの簡単な例、php オブザーバー example_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:09:20
オリジナル
808 人が閲覧しました

PHPのオブザーバーパターンの簡単な例、PHPオブザーバーの例

オブザーバー パターンは、相互に対話する 2 つ以上のクラスを含む、デザイン パターンの一般的なパターンです。このモードでは、クラスが別のクラスの状態を観察できるようになり、観察対象のクラスの状態が変化すると、オブザーバーに通知され、対応する状態が更新されます。

php の SPL 標準クラス ライブラリは、実装用に SplSubject および SplObserver インターフェイスを提供します。監視対象のクラスはサブジェクトと呼ばれ、監視を担当するクラスはオブザーバーと呼ばれます。このモードでは、SplSubject クラスが特定の状態を維持します。

このステータスが変化すると、notify メソッドが呼び出されます。通知メソッドを呼び出すと、attach メソッドを使用して以前に登録されたすべての SplObserver インスタンスの更新メソッドが呼び出されます。デモは次のとおりです。

コードをコピーしますコードは次のとおりです:
クラス DemoSubject は SplSubject{
を実装します プライベート $observers、$value;

パブリック関数 __construct(){
$this->observers = array();
}

パブリック関数attach(SplObserver $observer){
$this->observers[] = $observer;
}

パブリック関数 detach(SplObserver $observer){
If($idx = array_search($observer, $this->observers, true)){
unset($this->observers[$idx]);
}
}

パブリック関数notify(){
foreach($this->observers as $observer){
$observer->update($this);
}
}

パブリック関数 setValue($value){
$this->value = $value;
$this->notify();
}

パブリック関数 getValue(){
return $this->value;
}
}

クラス DemoObserver は SplObserver{
を実装します パブリック関数の更新(SplSubject $subject){
echo '新しい値は ' $subject->getValue();
}
}

$subject = 新しい DemoSubject();
$observer = 新しい DemoObserver();
$subject->attach($observer);
$subject->setValue(5);

http://www.bkjia.com/PHPjc/945719.html www.bkjia.com true http://www.bkjia.com/PHPjc/945719.html 技術記事 php のオブザーバー パターンの簡単な例、php オブザーバー インスタンス オブザーバー パターンは、相互に対話する 2 つ以上のクラスを含む、デザイン パターンの一般的なパターンです。このモードでは...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!