ホームページ  >  記事  >  バックエンド開発  >  PHP デザイン パターン ファクトリ パターンの役割は何ですか?

PHP デザイン パターン ファクトリ パターンの役割は何ですか?

黄舟
黄舟オリジナル
2017-11-13 15:03:593270ブラウズ

phpファクトリーモードのメリット、ファクトリーモードの意味、ファクトリーモードの3つの場面についてご紹介してきましたので、今日は引き続きphpファクトリーモードの役割についてご紹介していきます!

ファクトリ パターンには、シンプル ファクトリ、ファクトリ メソッド、抽象ファクトリの 3 種類があります。これら 3 種類のファクトリの違いは、抽象ファクトリには複数の製品ラインがあるのに対し、ファクトリ メソッドには 1 つの製品ラインしかないことです。抽象ファクトリーの簡略化。ファクトリ メソッドはシンプル ファクトリの逆です。一見すると、多くのコードが追加されているように見えますが、ファクトリ メソッドはシンプル ファクトリと同じ機能を実装します。しかし本質的には、単純なファクトリーは 設計パターン の開閉原則に厳密に従っていないということです。新しい製品を追加する必要がある場合、ファクトリー コードも変更する必要があります。ただし、ファクトリ メソッドは開閉の原則に厳密に従っており、このモードは抽象ファクトリ インターフェイスのみを担当し、特定のファクトリの拡張は顧客に任されます。分業では、コアエンジニアが抽象的な工場や抽象的な製品の定義を担当し、ビジネスエンジニアが具体的な工場や具体的な製品の実装を担当します。抽象化層が適切に設計されている限り、フレームワークは非常に安定しています。

シンプルなファクトリー

利点: 製品ユーザーは製品クラスの作成プロセスを気にする必要がなく、特定の製品の実装クラスからの分離効果が得られます。

欠点: 「オープン-クローズド」原則 (OCP) に違反します。なぜなら、新しいプロダクトクラスを追加するときは、元のファクトリメソッドを変更する必要があるからです。そして、静的プロダクションメソッドを定義し、渡された型パラメータに従って対応する特定の親クラスを生成します

具体的なコードは次のとおりです

<?php//抽象产品interface Person {
    public function getName(); }//具体产品实现class Teacher implements Person {
    public function getName() {
        return "老师n";
    }}class Student implements Person {
    public function getName() {
        return "学生n";
    }}//简单工厂class SimpleFactory {
    public static function getPerson($type) {
      $person = null;
      if ($type == &#39;teacher&#39;) {
        $person = new Teacher();
      } elseif ($type == &#39;student&#39;) {
        $person = new Student();
      }
      return $person;
    }}//简单工厂调用class SimpleClient {
    function main() {
      // 如果不用工厂模式,则需要提前指定具体类
      // $person = new Teacher();
      // echo $person->getName();
      // $person = new Student();
      // echo $person->getName();

      // 用工厂模式,则不需要知道对象由什么类产生,交给工厂去决定
      $person = SimpleFactory::getPerson(&#39;teacher&#39;);
      echo $person->getName();
      $person = SimpleFactory::getPerson(&#39;student&#39;);
      echo $person->getName();
    }}

概要:

この記事の学習を通じて、誰もがには、PHP ファクトリー パターンの役割に関する新しい概念があります。お役に立てば幸いです。 ~関連する推奨事項:

PHP Factory モードを使用する利点の分析

3 つの PHP Factory モードの簡単な紹介


PHPファクトリーモード?なぜphpファクトリーモードを使用するのでしょうか?

以上がPHP デザイン パターン ファクトリ パターンの役割は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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