動画をリンクします。https://member.bilibili.com/v2#/upload-manager/article(レビュー)
パターンの1の定義が構築されています
(1)複雑なオブジェクトを作成するためにユーザーを促進する(実施プロセスを知る必要がありません)
コードの(2)カプセル化と再利用(ビルドプロセスとオブジェクトのカプセル化および多重化の詳細)
クルマを作り、車を買う、車を作るための責任がある(ロールモデルビルダーなど)の工場のようなものである場合には、組立工程と、再び工場の詳細にありました。(ユーザの役割など)車のバイヤーが、あなたはちょうどあなたが必要とするモデルを指示する必要があり、その後、あなたが直接購入することができ、あなたは車の組み立て方法を知っている必要はありません。
2.ロールモデルビルダー
ビルダー(ビルダー):指定製品オブジェクトのさまざまなコンポーネントを作成するための抽象インタフェース。
特定ビルダー(ConcreteBuilder):ビルダーインタフェース構造を実装し、組立品の種々の構成要素のために、定義され、明確に製品を取得するためのインタフェースを作成し、提供することを表明しました。
ディレクター(監督):コマンドおよびビルダー・インタフェースを使用してオブジェクトを構築します。
プロダクト(製品):複雑なオブジェクトを表すが構築されています。ConcreteBuilderは、製品の内部表現を作成し、その組立プロセスを定義、構成部品は、これらの成分は、最終製品のインタフェースに組み込まれているなど、クラスを定義して含みます。
これらの役割の間の関係は以下のとおりです。
- 取締役(取締役)との直接のクライアント(クライアント)の行為は、通信する必要があります。
- リクエスト(ビルダー)の様々な構成要素の通信ニーズの後に建設部門の製品を作成するために、コマンダ顧客。
- 特定ビルダー(ConcreteBuilder)に委任各成分リクエストの構築。
- それぞれの具体的なビルダーは、製品コンポーネントを構築するための責任があります。
- 特定の製品(商品)への最終構築物。
図:
モデルビルダーの3.長所と短所
利点:
(1)Builderパターンを使用して、クライアントが製品の内部構成の詳細を知る必要はありませんができます。
コンクリートビルダークラス間(2)システムの膨張を助長している、互いに独立しています。
(3)具体的なビルダーは独立しているので、あなたは徐々に構築のプロセスを絞り込むことができますし、他のモジュールへの影響はありません。
短所:
(1)ビルダーパターン作成製品は、一般的に、より一般的な、類似の構成要素を持っている、Builderパターンは、その使用は一定の制限が適用された場合の製品の間に有意な差は、適切ではない場合。
(2)製品の複雑における内部変化した場合、システムは非常に大きくなることを引き起こし、この変更を実装するための具体的なビルダークラスを定義する必要性の多くを引き起こす可能性があります。