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

php デザイン パターン - ビルダー パターン、php デザイン パターン_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:19:08843ブラウズ

php デザイン パターン — ビルダー パターン、php デザイン パターン

要件分析:

BMW と Mercedes-Benz から製品の部品とモデルを定義する責任があり、私たちが生産を担当します。要件を簡単に説明すると、次のようになります。 彼らのニーズによりよく適応するには、この要件に合わせた設計パターンを設計する必要があります。

まず、必要なすべての部品を定義するための車のモデル クラスが必要です。これは、ロールス ロイスやベントレーなど、より多くの企業から注文を受ける可能性があるためです。

その後、各車はこの抽象クラスを継承し、内部のメソッドを実装します。

次に、独自の車を構築するために必要なメソッドを定義するビルダー抽象クラスが必要です

その後、この抽象クラスを継承するかどうかは、それぞれの自動車メーカーの責任になります。

建設モードを考えていきます。そう、それはビルダーモードです。使い方も完璧です。ビルダーのユースケース図を見てみましょう

注意: この図の例のメソッド部分は、私の例とは一致しません。

コードに直接移動します:

リーリー

コードを直接実行して、素晴らしいメルセデス ベンツ車を製作してみることができます。

ビルダーパターンの定義

ビルダーパターン(Builder Pattern)はジェネレーターパターンとも呼ばれ、その定義は以下の通りです。

同じ構築プロセスで異なる表現を作成できるように、複雑なオブジェクトの構築をその表現から分離します。 同じ構築プロセスで異なる表現を作成できるように、複雑なオブジェクトの構築をその表現から分離します。

ビルダーパターンの一般的なクラス図を図に示します。

php デザイン パターン - ビルダー パターン、php デザイン パターン_PHP チュートリアル

ビルダーモードには次の4人のキャラクターがいます:

    製品製品カテゴリー
通常、テンプレート メソッド パターンが実装されます。つまり、テンプレート メソッドと基本メソッドがあります。これについては、前の章のテンプレート メソッド パターンを参照してください。この例では、BenzModel と BMWModel が製品カテゴリに属しています。

    ビルダー抽象ビルダー
  • , 一般にサブクラスによって実装されるプロダクトの確立を標準化します。この例では、CarBuilder は抽象ビルダーです。

コンクリートビルダーコンクリートビルダー
  • 抽象クラスで定義されたすべてのメソッドを実装し、コンポーネント オブジェクトを返します。この例では、BenzBuilder と BMWBuilder はコンクリート ビルダーです。

ディレクター
  • 既存のモジュールの順序を調整し、ビルダーに構築を開始するように指示するのは上司です。上司を見つけて、これ、これ、そしてこのタイプの車両モデルが欲しいと言いました。その後、上司が「それを私にください」というコマンドを渡し、チームと私は一生懸命構築に取り組み始め、プロジェクトが完了しました。

PHPデザインパターンの紹介

「php デザイン パターン」を特に探す必要はありません。「デザイン パターン」または「Java デザイン パターン」を探すと、見つけやすいです。デザインパターンは特定の言語に固有のものではなくアイデアであるため、「php デザインパターン」、「java デザインパターン」、「デザインパターン」のどれを見ても、得られるデザインアイデアは同じです


PHP デザインパターンの利点は何ですか

UserFactory を使用する場合、User クラスの存在を知る必要はありません。将来さらに多くのクラスが存在する場合は、このパターンを使用することをお勧めします。抽象ファクトリ パターン、ファクトリ パターン、ファクトリ メソッド パターンについて学びます。これらはすべて再利用可能なプログラミングの手段です。


http://www.bkjia.com/PHPjc/878815.html

tru​​ehttp://www.bkjia.com/PHPjc/878815.html技術記事 PHP デザイン パターン - ビルダー パターン、PHP デザイン パターン要件分析: BMW と Mercedes-Benz からの注文を受けました。彼らは製品の部品とモデルを定義する責任があります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。