序文
この章では、基本的なデザインパターンビルダーを説明します
方法
1.コンセプト
ただ、複雑なオブジェクトを作成するために非常に適していません前に、我々は簡単に見つけることができる最初の2つの設計パターンを学習した後、型モデルを作成します!だから、実際の生活の中で、いつもより複雑なオブジェクトのいくつかがあるでしょう。コンピュータ、そのモニター(モニター)、機械(シャーシ)、キーボード(鍵盤)のようなこのオブジェクトは、その独立した関連する属性たこれらの配列の不可欠な部分として、その不可欠な部分であり、そして組成物は注意を払う必要があり、我々は使用する必要がありますこの問題を解決するためのビルダーのデザインパターン。
Builderパターンの性質は、オブジェクトを作成するために相互接続され、(ビルダー)と別途組立(監督)を構築することです。
2.ビルダーデザインパターンの実装手順
1)準備
以下のような作品を作成します:
前記4つのエンティティクラスがあり、それぞれのコンピュータ(PC)モニター(ディスプレイ)、機械(シャーシ)、キーボード(鍵盤)
次のようにコンピュータのコードは次のとおりです。
package creator;
public class Computer {
private Monitor monitor; //显示器
private Machine machine; //主机
private KeyBoard keyBoard; //键盘
public Monitor getMonitor() {
return monitor;
}
public void setMonitor(Monitor monitor) {
this.monitor = monitor;
}
public Machine getMachine() {
return machine;
}
public void setMachine(Machine machine) {
this.machine = machine;
}
public KeyBoard getKeyBoard() {
return keyBoard;
}
public void setKeyBoard(KeyBoard keyBoard) {
this.keyBoard = keyBoard;
}
}
前記表示のコードでは、3つのクラスコードの残りの部分のように、次のとおりです。
package creator;
public class Monitor {
private String name;
public Monitor(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2)設計のコンストラクタ
以前とは異なり、この方法は、異なる複数のコンポーネントを構築可能な構成を有しています。別々の要素を構築するか、工場設計パターンと組み合わせて使用する方法。
次のように我々は、コンピュータビルダー・インタフェースを設定します。
package creator;
public interface ComputerBuilder {
public Monitor builderMonitor();//创建显示器
public Machine builderMachine();//创建主机
public KeyBoard builderKeyBoard();//创建键盘
}
そして、このようヒューレット・パッカード(HP)として、建物のコンピュータ実装クラスを設計
package creator;
public class HPComputerBuilder implements ComputerBuilder {
@Override
public Monitor builderMonitor() {
System.out.println("我是惠普显示器");
return new Monitor("惠普"); //注意:此处可以结合工厂设计模式使用
}
@Override
public Machine builderMachine() {
System.out.println("我是惠普主机");
return new Machine("惠普");
}
@Override
public KeyBoard builderKeyBoard() {
System.out.println("我是惠普键盘");
return new KeyBoard("惠普");
}
}
3)セットビルダ
私たちは、インターフェイスビルダーの設定しました:
package creator;
public interface ComputerDirector {
public Computer createComputer();//组装电脑
}
次に、私たちは私たちのHPのコンピュータを組み立てるために、その実装クラスを設計します。
package creator;
public class HPComputerDirector implements ComputerDirector {
private ComputerBuilder builder;
public HPComputerDirector(ComputerBuilder builder) {
this.builder = builder;
}
@Override
public Computer createComputer() {
Monitor monitor = builder.builderMonitor();
Machine machine = builder.builderMachine();
KeyBoard keyBoard = builder.builderKeyBoard();
//组装电脑,可考虑组建顺序
Computer computer = new Computer();
computer.setMonitor(monitor);
computer.setMachine(machine);
computer.setKeyBoard(keyBoard);
return computer;
}
}
試験用のテストクラスの4)の調製
package creator;
public class Test {
public static void main(String[] args) {
ComputerDirector director = new HPComputerDirector(new HPComputerBuilder());
Computer computer = director.createComputer();
System.out.println(computer.getMonitor().getName());
}
}
これは、複雑なオブジェクトの作成を完璧に実現です!!