ホームページ  >  記事  >  バックエンド開発  >  PHP パターン デザイン ファクトリ パターン、PHP パターン デザイン ファクトリ_PHP チュートリアル

PHP パターン デザイン ファクトリ パターン、PHP パターン デザイン ファクトリ_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:44:50735ブラウズ

phpパターン設計 - ファクトリーパターン、phpパターン設計ファクトリー

前回の記事phpパターン設計 - シングルトンパターンに引き続き、(あまり関係がなさそうですが)。今日は基本パターンの2つ目、デザインファクトリーパターンについてお話します。

それでは、ファクトリーモードとは何ですか?

名前から判断すると、何の手がかりもなさそうです。ファクトリーモード、生産​​に関連していますか?それとも製造過程に関係があるのでしょうか?それは工場のリーダーと関係があるのでしょうか?それはリーダー秘書と関係がありますか?長官…わかりました、あまり近づかないようにしましょう。いわゆる工場モデルは実際には生産に関連しています。何を生産するか?生成されるのは、インスタンス オブジェクトです。製造にはどのような設備が使用されますか? ファクトリークラスを介して生成されます。どうやって生産するのでしょうか? ファクトリ クラスは、独自の静的メソッドを呼び出してオブジェクト インスタンスを生成します

ファクトリ パターンには、一般原則に従って Factory という名前の静的メソッドであるキー構成があります。ただし、これは単なる原則であり、ファクトリ メソッドには任意の名前を付けることができますが、この静的メソッドは任意のデータのパラメータも受け入れることができます。そしてオブジェクトを返さなければなりません。

なぜファクトリーモードを使用するのですか?

ファクトリ パターンに触れたことのない多くの人は、なぜオブジェクトを作成するためにファクトリ クラスを構築するのにこれほど多くの労力を費やさなければならないのかと尋ねずにはいられません。メンテナンスの容易さや拡張性などを適用する代わりに、このような単純な問題を考慮することができます。プロジェクト内の場合は、クラスを通じてオブジェクトを作成します。ほぼ完成している、または完成していて関数を拡張する必要がある場合、元のクラス名があまり適切ではないことが判明したり、関数拡張を実現するにはクラスにコンストラクター パラメーターを追加する必要があることがわかります。なんてことだ!このクラスを通じて多数のオブジェクト インスタンスを作成しましたが、それらを 1 つずつ変更する必要がありますか?今になって初めて「高凝集性・低結合性」の広さと深さを感じます。問題ありません。ファクトリ メソッドでこの問題は解決できます。

もう一度考えてみてください。データベースに接続したいのですが、php、mysql 拡張機能、mysqli 拡張機能、PDO 拡張機能など、いくつかのメソッドがあります。将来の操作のためにオブジェクトが必要なだけです。どれが必要かは状況によって異なります。全員がデータベースに接続しているため、接続の確立、クエリ、切断などの同じ機能が必要です (インターフェイスの重要性はここで示されています)。全体として、これらの方法は「統一され、外部の世界と統一される」必要があります。これを達成するにはどうすればよいでしょうか?工場出荷時のパターンを使用します。

ファクトリーパターンを実装するにはどうすればよいですか?

シングルトンモードと比較して、上記、ファクトリクラス、ファクトリクラスの静的メソッドで十分な情報を提供しました。静的メソッドで作成する必要があるオブジェクト インスタンスを新規作成するだけです。もちろん、上記の 2 番目の質問については、ファクトリ クラスの静的メソッドのパラメータに基づいて単純に判断できます。 if..else.. を使用するか switch..case.. を使用するかに関係なく、作成するクラスを決定する作業を迅速かつ効率的に完了できると便利です。最後に、ファクトリ クラスの静的メソッドはオブジェクトを返すことを忘れないでください。 2つどころか3つもありません。

基本ファクトリークラス:

リーリー

もう少し複雑なファクトリーパターン:

リーリー

ファクトリの静的メソッドを Factory() にする必要がある場合、ファクトリ クラスに Factory という愚かな名前を付けないでください。なぜ?同じ名前のコンストラクターを忘れないでください~

最後に、いくつかの感想について話しましょう。多くの初心者は、if.else..、セッション、クッキーを学んだばかりで、もう少し洗練されようとしています。人々と話していると、拡張性や保守性などについてよく話されます。たとえば、あなたはしばらく言葉を失うでしょう。コードを書くときも、誰かと一緒に勉強するときも、自分は常に「大勢の中で他人を探す」段階にいると感じることがあります。一生懸命勉強した後、ふと振り返ると、「あの人はぼんやりしている」と気づきます。光」と叫び、「この人は...「そうです」ということが判明しました。

私がパターンのデザイン方法を知っていることをあえて認めません。私もまだ 1 年も経っていないので、学習プロセスを記録するためにブログを共有したいと思います。それが他の人の助けになれば、それはさらに良いです~~~

シリーズ記事:

PHPパターン設計シングルトンパターン

phpパターンデザインファクトリーパターン

phpパターンデザイン登録ツリーパターン

www.bkjia.com本当http://www.bkjia.com/PHPjc/1048724.html技術記事 PHP パターン デザイン ファクトリ パターン、PHP パターン デザイン ファクトリは、以前の PHP パターン デザインのシングルトン パターンを引き継ぎます (関係はほとんどないようですが)。今日は第二回目の基本パターン設計工場についてお話します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。