ホームページ >バックエンド開発 >PHPチュートリアル >PHP 設計パターン: シングルトン モード、ファクトリー モード、オブザーバー モード

PHP 設計パターン: シングルトン モード、ファクトリー モード、オブザーバー モード

WBOY
WBOYオリジナル
2016-07-25 08:58:04940ブラウズ
この記事では、PHP デザイン パターンの 3 つのモード、つまりシングルトン モード、ファクトリー モード、オブザーバー モードを紹介します。必要な方は参考にしてください。

1、シングルケースモード

このクラスのインスタンスはアプリケーション内に 1 つだけ存在します。 たとえば、シングルトン モードでは 1 つのオブジェクトのみがデータベースにアクセスできるため、複数のデータベース接続が開かれることがなくなります。

シングルトン クラスには次の点を含める必要があります。 通常のクラスとは異なり、シングルトン クラスは直接インスタンス化できず、それ自体でのみインスタンス化できます。したがって、このような制限効果を得るには、コンストラクターをプライベートとしてマークする必要があります。 シングルトン クラスが直接インスタンス化されずに機能するには、そのようなインスタンスが提供される必要があります。したがって、シングルトン クラスには、クラスのインスタンスを保存できるプライベート静的メンバー変数と、実際のインスタンスにアクセスできる対応するメンバー変数が必要です。 例のパブリック静的メソッド。

PHP では、シングルトン クラス オブジェクトのクローン作成によって上記のシングルトン クラスの実装形式が崩れることを防ぐために、通常、ベースには空のプライベート __clone() メソッドが提供されます。

基本的なシングルトン パターン:

リーリー

2、ファクトリーモード ファクトリー モードでは、入力パラメーターまたはアプリケーション構成に基づいて他のクラスのインスタンスを実装して返すように特別に設計されたクラスを作成できます。

最も基本的なファクトリーパターン:

リーリー

シェイプオブジェクトを記述するファクトリは、渡されたパラメータの数に基づいてさまざまなシェイプを作成することを望んでいます。

リーリー

手順: ファクトリ パターンを使用すると、クラスとメソッドが 1 つしかないため、メソッドの呼び出しが容易になります。ファクトリ パターンを使用しない場合、ファクトリ パターンを使用するときにどのクラスとどのメソッドを呼び出すかを決定する必要があります。対応 たとえば、ファクトリ パターンを使用しない場合、シェイプのサポートを追加するには、ファクトリ クラスの create() メソッドを変更するだけで済みます。シェイプを呼び出すブロック。

3、オブザーバーモード Observer パターンは、コンポーネント間の密結合を回避する別の方法を提供します。 パターンは単純です。オブジェクトは、別のオブジェクト (オブザーバー) が自分自身を登録できるようにするメソッドを追加することで、自分自身を監視可能にします。監視可能なオブジェクトが変化すると、登録されたオブザーバーにメッセージが送信されます。 これらのオブザーバーは、この情報を使用して、監視可能なオブジェクトとは独立して操作を実行します。その結果、オブジェクトは理由を理解することなく相互に通信できるようになります。

オブザーバー パターンの簡単な例: リスナーがステーションをリッスンするとき (つまり、新しいリスナーがステーションに追加されるとき)、メッセージを送信したログ オブザーバーが監視できるアラート メッセージが送信されます。

りー


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