ホームページ > バックエンド開発 > PHPチュートリアル > PHP デザイン パターンのオブザーバー パターンの紹介_PHP チュートリアル

PHP デザイン パターンのオブザーバー パターンの紹介_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:20:22
オリジナル
1163 人が閲覧しました

導入
オブザーバー パターンは、オブジェクトの 1 対多の依存関係を定義するため、オブジェクトの状態が変化すると、そのすべての依存関係が通知され、自動的に更新されます。
設計原則
オブザーバー パターンでは、すべてが変化します。被験者と観察者の数。このパターンを使用すると、テーマを変更せずに、テーマの状態に依存するオブジェクトを変更できます。 ——プログラムの変化する側面を見つけ出し、それを固定的な側面から分離します。
サブジェクトとオブザーバーの両方がインターフェイスを使用します。オブザーバーはサブジェクトに登録するためにサブジェクトのインターフェイスを使用し、サブジェクトはオブザーバー インターフェイスを使用します。観察を通知するため。これにより、疎結合の利点を活かしながら、これら 2 つが正常に動作するようになります。 ——実装プログラミングではなく、インターフェース プログラミングです。
オブザーバー モードは、「合成」を使用して、多くのオブザーバーをトピックに結合します。オブジェクト (オブザーバー - サブジェクト) 間のこの関係は、継承ではなく、実行時の合成によって生成されます。 ——より多くの組み合わせを使用し、継承を減らします。
コード

コードをコピー コードは次のとおりです:
/**
* 観察者パターン
* @作成者: Mac
* @日付: 2012/02/22
*/
class Paper{ /* Theme*/
private $_observers = array();
public function register($sub){ /* オブザーバーを登録します*/
$this->_observers[] = $sub;
}
public functiontrigger(){ /* 外部統合アクセス*/
if(!empty( $this ->_observers)){
foreach($this->_observers as $observer){
$observer->update();
}
}
}
}
/**
* オブザーバーによって実装されるインターフェース
*/
interface Observerable{
public function update();
}
class Subscriber 実装 Observerable{
echo "Callbackn"
}
}
//以下はテストコードです
/*テスト*/
$paper = new Paper();
$paper->register(new Subscriber());
//$paper->register(new Subscriber1()); register(new Subscriber2 ());
$paper->trigger();



概要
新しいオブジェクトを入力する場合は、それをトピック (オブザーバブルとも呼ばれます) に登録するだけです。 (登録にはさまざまな方法があります。構築中またはフレームワークによってアクセスされるインターフェイス内で登録することもできます)。その後、新しいオブジェクトのインターフェイスにコードを直接実装します。これにより、被写体と観察者のオブジェクト間の結合が減少します。

優れたデザインパターンはコードに直接組み込まれるのではなく、脳に組み込まれます。



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

www.bkjia.com

http://www.bkjia.com/PHPjc/325135.html技術記事オブジェクトの 1 対多の依存関係を定義するオブザーバー パターンの導入により、オブジェクトの状態が変化すると、そのすべての依存関係が通知され、自動的に更新されます。設計原則はオブザーバー パターンにあります...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート