ホームページ  >  記事  >  バックエンド開発  >  PHP における一般的なファクトリ デザイン パターンの詳細な説明

PHP における一般的なファクトリ デザイン パターンの詳細な説明

黄舟
黄舟オリジナル
2017-08-23 10:03:201258ブラウズ

1. ファクトリ パターン
は、オブジェクトを作成する特定のメソッドを持つクラスです。 new を直接使用せずに、ファクトリ クラスを使用してオブジェクトを作成できます。このようにすると、作成されるオブジェクトのタイプを変更する場合は、ファクトリを変更するだけで済みます。このファクトリを使用するすべてのコードは自動的に変更されます。

次のコードは、ファクトリ クラスの例です。この方程式のサーバー側は、データベースと、フィードバックの追加、フィードバックのリストの要求、および特定のフィードバックに関連する記事の取得を可能にする一連の PHP ページの 2 つの部分で構成されます。

IUser インターフェイスは、ユーザー オブジェクトが実行する必要がある操作を定義します:


interface IUser
{  function getName();
}

IUser の実装は User と呼ばれます:


class User implements IUser
{  public function __construct( $id ) { } 
  public function getName()
  {    return "Jack";
  }
}

UserFactory ファクトリ クラスは IUser オブジェクトを作成します:


class UserFactory
{  public static function Create( $id )
  {    return new User( $id );
  }
}

テストコードがファクトリに送信されます User 对象,并输出 getName メソッドをリクエストした結果:


$pr = UserFactory::Create( 1 );echo( $pr->getName()."\n" );

ファクトリ メソッドを使用するファクトリ パターンのバリアントがあります。クラス内のこれらのパブリック静的メソッドは、その型のオブジェクトを構築します。このメソッドは、このタイプのオブジェクトを作成することが重要な場合に役立ちます。たとえば、オブジェクトを作成し、いくつかのプロパティを設定する必要があるとします。このバージョンのファクトリ パターンはプロセスを 1 か所にカプセル化するため、複雑な初期化コードをコピーしてコード ベース全体に貼り付ける必要がありません。


りー

以上がPHP における一般的なファクトリ デザイン パターンの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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