設計モード--作成者--作成者
2665 ワード
定義#テイギ#
複雑なオブジェクトの構造をその表現から分離し、同じ構築プロセスで異なる表現を作成できるようにする設計モードをコンストラクタモードと呼ぶ.
じっこうはんい
1複雑なオブジェクトを作成するアルゴリズムが、そのオブジェクトのコンポーネントとそのアセンブリ方式とは独立している必要がある場合.
2構築プロセスが構築されたオブジェクトに異なる表現を許可しなければならない場合.
ロール#ロール#
このような設計モードでは、次のような役割があります.
1 builder:プロダクトオブジェクトを作成する各コンポーネントに抽象インタフェースを指定します.
2 ConcreteBuilder:Builderのインタフェースを実装して製品の各部品を構築して組み立てる.作成した表示を定義し、明確にし、製品を検索するインタフェースを提供し、各部品を徐々に製品にインストールするプロセス
3 Director:Builderインタフェースを使用するオブジェクトを作成します.アセンブリの取り付け
4 Product:構築された複雑なオブジェクトを表します.ConcreteBuilderは、最終製品にアセンブリするインタフェースを含むコンポーネントを定義するクラスを含む、製品の内部表示を作成し、そのアセンブリプロセスを定義します.
例
1.作成する複雑なオブジェクト
2.製品オブジェクトを作成する各部品の抽象インタフェースを指定する
3.個々のコンポーネントを作成するプロセス
4.組立完了
5テスト
6テスト結果
上画面のインストール
ケースを取り付ける
複雑なオブジェクトの構造をその表現から分離し、同じ構築プロセスで異なる表現を作成できるようにする設計モードをコンストラクタモードと呼ぶ.
じっこうはんい
1複雑なオブジェクトを作成するアルゴリズムが、そのオブジェクトのコンポーネントとそのアセンブリ方式とは独立している必要がある場合.
2構築プロセスが構築されたオブジェクトに異なる表現を許可しなければならない場合.
ロール#ロール#
このような設計モードでは、次のような役割があります.
1 builder:プロダクトオブジェクトを作成する各コンポーネントに抽象インタフェースを指定します.
2 ConcreteBuilder:Builderのインタフェースを実装して製品の各部品を構築して組み立てる.作成した表示を定義し、明確にし、製品を検索するインタフェースを提供し、各部品を徐々に製品にインストールするプロセス
3 Director:Builderインタフェースを使用するオブジェクトを作成します.アセンブリの取り付け
4 Product:構築された複雑なオブジェクトを表します.ConcreteBuilderは、最終製品にアセンブリするインタフェースを含むコンポーネントを定義するクラスを含む、製品の内部表示を作成し、そのアセンブリプロセスを定義します.
例
1.作成する複雑なオブジェクト
package com.builderpatter;
public class Phone {
private String shoujike;
private String pingmu;
public String getShoujike() {
return shoujike;
}
public void setShoujike(String shoujike) {
this.shoujike = shoujike;
}
public String getPingmu() {
return pingmu;
}
public void setPingmu(String pingmu) {
this.pingmu = pingmu;
}
}
2.製品オブジェクトを作成する各部品の抽象インタフェースを指定する
package com.builderpatter;
public interface PhoneBuilder {
void buildShoujike();
void buildPingmu();
public Phone buildPhone();
}
3.個々のコンポーネントを作成するプロセス
public class PhoneBuilderInstance implements PhoneBuilder {
private Phone phone;
public PhoneBuilderInstance() {
phone = new Phone();
}
public void buildPingmu() {
// TODO Auto-generated method stub
phone.setShoujike(" ");
}
public void buildShoujike() {
// TODO Auto-generated method stub
phone.setPingmu(" ");
}
public Phone buildPhone() {
// TODO Auto-generated method stub
return phone;
}
}
4.組立完了
package com.builderpatter;
public class PhoneDirector {
Phone phoneConstructor(PhoneBuilder pb) {
pb.buildPingmu();
pb.buildShoujike();
return pb.buildPhone();
}
}
5テスト
public class Test {
public static void main(String[] args) {
PhoneBuilder pb = new PhoneBuilderInstance();
PhoneDirector pd = new PhoneDirector();
Phone p =pd.phoneConstructor(pb);
System.out.println(p.getPingmu());
System.out.println(p.getShoujike());
}
}
6テスト結果
上画面のインストール
ケースを取り付ける