ホームページ >Java >&#&チュートリアル >Java ビルダー パターンとは何ですか?どのように達成するか? (コード付き)
この記事では、Java ビルダー パターンとは何なのかについて説明します。どのように達成するか? (コードを添付します)。困っている友人が参考になれば幸いです。
ビルダー パターンは、複数の単純なオブジェクトを使用して、複雑なオブジェクトを段階的に構築します。
Builder クラスは、最終的なオブジェクトを段階的に構築します。この Builder クラスは他のオブジェクトから独立しています。
ビルダー パターンは主にソフトウェア システムで使用され、通常は特定のアルゴリズムを使用してさまざまな部分のサブオブジェクトで構成される「複雑なオブジェクト」の作成に直面することがあります。要件では、この複雑なオブジェクト オブジェクトの個々の部分は劇的な変更に直面することがよくありますが、それらを組み合わせるアルゴリズムは比較的安定しています。
package com.designpattern.builderPattern; /** * 对象 人 * * @author zhongtao on 2018/9/17 */ public class Human { private String head; private String body; private String hand; private String foot; public String getHead() { return head; } public void setHead(String head) { this.head = head; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public String getHand() { return hand; } public void setHand(String hand) { this.hand = hand; } public String getFoot() { return foot; } public void setFoot(String foot) { this.foot = foot; } }2. ヒューマン ビルダー インターフェイスを作成します
package com.designpattern.builderPattern; /** * 造人接口 规定造人的规范 需要头、身体、手、脚 * * @author zhongtao on 2018/9/17 */ public interface BuilderHuman { void buildHead(); void buildBody(); void buildHand(); void buildFoot(); /** * 返回创建的对象 */ Human createHuman(); }3 、ConcreteBuilderさまざまなタイプの人物を作成しますtallperson
package com.designpattern.builderPattern; /** * 高个子的人 * * @author zhongtao on 2018/9/17 */ public class TallPersonBuilder implements BuilderHuman { Human human; public TallPersonBuilder() { human = new Human(); } @Override public void buildHead() { human.setHead("普通的头脑"); } @Override public void buildBody() { human.setBody("壮实,高大的身体"); } @Override public void buildHand() { human.setHand("长手"); } @Override public void buildFoot() { human.setFoot("长脚"); } @Override public Human createHuman() { return human; } }smartHuman
package com.designpattern.builderPattern; /** * 聪明的人 * * @author zhongtao on 2018/9/17 */ public class SmartHumanBuilder implements BuilderHuman { Human human; public SmartHumanBuilder() { human = new Human(); } @Override public void buildHead() { human.setHead("高智商的头脑"); } @Override public void buildBody() { human.setBody("健康的身体"); } @Override public void buildHand() { human.setHand("普通的手"); } @Override public void buildFoot() { human.setFoot("普通的脚"); } @Override public Human createHuman() { return human; } }4。Director ビルダー パターンの中心は、さまざまな人物を作成するために特定のビルダーを呼び出します
package com.designpattern.builderPattern; /** * 管理造人的顺序 BuilderHuman不同,则创建的人不同 * @author zhongtao on 2018/9/17 */ public class HumanDirector { public Human createHumanByDirector(BuilderHuman builderHuman){ builderHuman.buildHead(); builderHuman.buildBody(); builderHuman.buildHand(); builderHuman.buildFoot(); return builderHuman.createHuman(); } }5. ビルダー モードのテスト
package com.designpattern.builderPattern; import org.junit.Test; /** * 测试 * * @author zhongtao on 2018/9/17 */ public class BuilderPatternTest { /** * 测试建造者模式 */ @Test public void test() { HumanDirector humanDirector = new HumanDirector(); //创建高个子的人 Human humanByDirector = humanDirector.createHumanByDirector(new TallPersonBuilder()); System.out.println(humanByDirector.getHead()); System.out.println(humanByDirector.getBody()); System.out.println(humanByDirector.getHand()); System.out.println(humanByDirector.getFoot()); System.out.println("------简单的分割线------"); //创建聪明的人 Human smartHuman = humanDirector.createHumanByDirector(new SmartHumanBuilder()); System.out.println(smartHuman.getHead()); System.out.println(smartHuman.getBody()); System.out.println(smartHuman.getHand()); System.out.println(smartHuman.getFoot()); } }3. ビルダー モードの長所と短所利点:
以上がJava ビルダー パターンとは何ですか?どのように達成するか? (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。