同一の構築プロセスが異なる表現を作成することができるように、それは、構築物および複合オブジェクトのその分離を表します。
Builderパターン
同一の構築プロセスが異なる表現を作成できるように、その表現から複雑なオブジェクトの構造を分離します。
クラス図
の構造と使用
構造・ジェネレータ・モードでは、4つの役割を有しています。
- プロダクト(製品):複雑なオブジェクトの特定の発電機を構築します。
- 抽象ジェネレータ(要約ビルダ):製品のオブジェクトの個々のコンポーネントの作成に加えて、多数の方法を定義する抽象ジェネレータインターフェースだけでなく、メソッドを定義するには、製品のオブジェクトを返します。
- 詳細な発電機(コンクリートビルダ):ビルダーインタフェースの実装クラスは、特にビルダービルダーインタフェースの実装は、定義されました。
- ディレクター(監督):司令官は、インターフェイスビルダー内で宣言される変数を含むクラスです。指揮官の責任は、要求された特定の発電機が正常にProductオブジェクトを構築した場合、コマンドは、ユーザーが必要とする製品のオブジェクトを構築するために、特定のビルダーを要求するユーザーに特定の発電機を提供する責任があり、司令官は作ることができます製品の具体的な戻り生成されたオブジェクトを構築します。
簡単な例
製品抽象クラスPanelProduct.java
|
|
ビルダービルダー抽象インタフェース・クラスBuilder.java
|
|
ConcreteBuilder実装クラスConcreteBuilderOne.java
|
|
ConcreteBuilder的实现类ConcreteBuilderTwo.java
|
|
指挥类Director.java
|
|
测试类Application.java
|
|
运行截图
生成器模式的优点
- 生成器模式将对象的构造过程封装在具体生成器中,用户使用不同的具体生成器就可以得到该对象的不同表示。
- 生成器模式将对象的构造过程从创建对象的类中分离出来,使用户无需了解该对象的具体组件。
- これは、より効率的に細かくプロセス制御オブジェクトを構成することができます。ジェネレータは、プログラムをより正確にすることができ、いくつかのステップ、オブジェクト全体構造の効果的な制御に分割されているオブジェクトを処理するように構成されています。
- パターン発生器は切り離さオブジェクトクラスで作成されたオブジェクトを処理するように構成されたので、より柔軟な弾性のオブジェクトを作成します。
- 閉鎖原則 - 新しいコンクリートプロデューサを追加する場合、コマンダのコードを変更することなく、すなわち、パターンは、開口部を満たします。
該当する発電機モードのシナリオ
- システムは、物体の複雑な内部構造をユーザーに提供する準備ができて、オブジェクトが構築時に作成するコードを記述することで、ユーザーのニーズを満たすことができない場合、パターン発生器、このようなオブジェクトを使用して構築することができます。
- いくつかのシステム構成プロセスを必要とする場合、オブジェクトクラスを作成するには、オブジェクトの独立していなければなりません。
ソースが行くダウンロード
オリジナル:ビッグボックス のJavaデザインパターン-ジェネレータ・モード