PHP のデザインパターンファクトリーパターンとシングルトンパターンの例。必要な友人はそれを参照できます。
1.ファクトリーモード
ファクトリ パターンは、オブジェクトを作成する特定のメソッドを持つクラスです。 new を直接使用せずに、ファクトリ クラスを使用してオブジェクトを作成できます。このようにすると、作成されるオブジェクトのタイプを変更する場合は、ファクトリを変更するだけで済みます。このファクトリを使用するすべてのコードは自動的に変更されます。
主な機能は結合を低減することです。
コードは次のとおりです | コードをコピー |
抽象クラス操作{ クラスサブは操作を拡張します{ クラスファクトリー{ $Op=Factory::CreateObj('-'); |
実際の開発で使用されるのは、一般的にデータベース選択クラスとして使用されます。
例 2 は、ファクトリ メソッドの使用例を示しています。
コードは次のとおりです | コードをコピー |
インターフェイス IUser クラス User は IUser を実装します パブリック静的関数 Create( ) パブリック関数 __construct( $id ) { } パブリック関数getName() $uo = ユーザー::Load( 1 ); |
このコードは非常に単純です。インターフェイス IUser が 1 つと、このインターフェイスを実装する User クラスが 1 つだけあります。 User クラスには、オブジェクトを作成するための 2 つの静的メソッドがあります。この関係は、図 2 の UML で表すことができます
PHP のファクトリーモードによる効率の向上
以下の4つのファイルを作成します
コードは次のとおりです | コードをコピー |
index.php
include_once("f.inc.php");
クラスファクトリー
グローバル $config;
クラスT2 |
index.php では、ファクトリ クラスを通じて他のクラスのインスタンスを作成します。
ファクトリには、array("クラス名" => "クラスファイルパス") の形式で保存された配列 $this->mClasses があります。
Factory::create() でクラス インスタンスを作成すると、create() でまずクラスが存在するかどうかがチェックされ、存在しない場合は、$this-> に従ってクラスに対応するクラス ファイルがインクルードされます。 mクラス。次に、このクラスのインスタンスを作成して返します。
この方法では、実行するスクリプト (index.php など) にファクトリ クラス ファイルを含めるだけで済みます。
t1.inc.php の次の 2 行のコードにも注目してください。
コードは次のとおりです | コードをコピー |
グローバル $config; $config='サーフチェン'; |
2 シングルトンモード
簡単に言えば、PHP シングルトン モードはクラスによって実装される関数であり、このクラスのインスタンスはアプリケーション全体に 1 つだけ存在します。
ファクトリ パターンは、オブジェクト指向のポリモーフィズムを強調しており、機能の違いをカプセル化して、データベース リンクなどの共通の機能を外部に実装できますが、データベース リンクを実装するには異なるメソッドを記述する必要がある場合があります。データベースが MySQL を使用しているか Oracle を使用しているかを知る必要はなく、query() メソッドを使用してデータベース上で対応する操作を実行することだけが必要です。これにより違いが隠蔽され、クラスがより堅牢になります。
コードをコピー | |
クラスMysql{
パブリック静的 $conn;
|
。
http://www.bkjia.com/PHPjc/631278.html