【java】java設計モード(4):ビルダーモード(Builder)
2472 ワード
ファクトリクラスモードは単一クラスを作成するモードを提供し、コンストラクタモードは各種製品を集中して管理し、複合オブジェクトを作成するために使用される.複合オブジェクトとは、あるクラスが異なる属性を持っていることを意味し、実際にコンストラクタモードは前の抽象ファクトリモデルと最後のTestを結合して得られる.コードを見てみましょう.
前と同様に,1つのSenderインタフェース,2つの実装クラスMailSenderとSmsSenderもある.最後に、コンストラクタクラスは次のようになります.
テスト:
この点から,コンストラクタモデルは多くの機能を1つのクラスに統合し,このクラスは比較的複雑なものを創造することができる.したがって、エンジニアリングモデルとの違いは、ファクトリモデルが注目しているのは単一の製品の作成であり、コンストラクタモデルが注目しているのは、オブジェクトに合致する複数の部分の作成です.したがって,工場モデルと建設者モデルのどちらを選択するかは,実際の状況によって決まる.
前と同様に,1つのSenderインタフェース,2つの実装クラスMailSenderとSmsSenderもある.最後に、コンストラクタクラスは次のようになります.
public class Builder {
private List<Sender> list = new ArrayList<Sender>();
public void produceMailSender(int count){
for(int i=0; i<count; i++){
list.add(new MailSender());
}
}
public void produceSmsSender(int count){
for(int i=0; i<count; i++){
list.add(new SmsSender());
}
}
}
テスト:
public class Test {
public static void main(String[] args) {
Builder builder = new Builder();
builder.produceMailSender(10);
}
}
この点から,コンストラクタモデルは多くの機能を1つのクラスに統合し,このクラスは比較的複雑なものを創造することができる.したがって、エンジニアリングモデルとの違いは、ファクトリモデルが注目しているのは単一の製品の作成であり、コンストラクタモデルが注目しているのは、オブジェクトに合致する複数の部分の作成です.したがって,工場モデルと建設者モデルのどちらを選択するかは,実際の状況によって決まる.