ホームページ >バックエンド開発 >PHPチュートリアル >PHP デザイン パターン シリーズ - オブザーバー パターン_PHP チュートリアル
オブザーバーモード
Observer デザイン パターンにより、オブジェクト ステータスを対象とするオブジェクトの作成と表示が容易になり、コア オブジェクトから分離されたトップレベルの機能が提供されます。オブザーバー デザイン パターンは、一般に複雑な WEB システムで非常によく使用され、コード設計の負担を軽減し、コードの結合を減らすのに役立ちます。
シーンデザイン
オーダークラスを設計する
注文が作成されると、電子メールの送信や注文ステータスの変更など、さまざまなアクションが実行されます。
本来の方法は、これらの操作をすべて create 関数に記述することです
しかし、注文作成クラスがますます大きくなるにつれて、そのような業務は需要と急速な変化に対応できなくなります
このとき、オブザーバーモードが表示されます。
コード設計:
[php]
//オブザーバー デザイン パターンにより、ターゲット オブジェクトのステータスを持つオブジェクトの作成と表示が容易になり、コア オブジェクトから切り離された最上位の機能が提供されます。
// オブザーバー デザイン パターンは、一般に複雑な WEB システムで非常によく使用され、コード設計の負担を軽減し、コードの結合を減らすのに役立ちます。
//ショッピングプロセスを例に挙げます
クラスの順序 {
Protected $observers = array() // 観測コンテナを保存します
;
// オブザーバーが追加されました
パブリック関数 addObServer($type, $observer) {
$this->observers[$type][] = $observer;
}
// オブザーバーを実行します
パブリック関数 obServer($type) {
If (isset($this->observers[$type])) {
foreach ($this->observers[$type] as $obser) {
$a = 新しい $obser;
$a->update($this); //パブリックメソッド
;
}
}
//注文購入プロセス
パブリック関数 create() {
「購入成功」をエコーします
;
$this->obServer('buy') // 購入アクション
;
}
}
クラスオーダーメール {
パブリック静的関数 update($order) {
echo '購入が成功したことを示すメールを送信します';
}
}
クラス orderStatus {
パブリック静的関数 update($order) {
「注文ステータスを変更」をエコーします
;
}
}
$ob = 新しい注文
$ob->addObServer('購入', '注文メール');
$ob->addObServer('buy', 'orderStatus');
$ob->create();
作者: initphp
http://www.bkjia.com/PHPjc/478126.html
www.bkjia.com