java设计模式之建造者模式
2018-03-19 11:34
423 查看
什么时候需要用到建造者模式?
建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
使用建造者模式好处就是使得建造代码与表示代码分离,由于建造者隐藏该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要在创建一个具体的创建者就可以了。
建造者模式主要有几部分组成:
例如: 建造人
1.抽象建造类 Builder
2.具体建造者 ThinPersonBuilder(继承Builder,构造装配各个部件)
3.指挥者 (根据需求 具体的指挥创建)
4.Product (最终创建出来的产品)
代码如下:
1:抽象建造类 Builder
建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
使用建造者模式好处就是使得建造代码与表示代码分离,由于建造者隐藏该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要在创建一个具体的创建者就可以了。
建造者模式主要有几部分组成:
例如: 建造人
1.抽象建造类 Builder
2.具体建造者 ThinPersonBuilder(继承Builder,构造装配各个部件)
3.指挥者 (根据需求 具体的指挥创建)
4.Product (最终创建出来的产品)
代码如下:
1:抽象建造类 Builder
/** * @author: wjq * @date: 2018/3/19 * @description: 抽象建造类 Builder */ public abstract class PersonBuilder { public abstract void buildHead(); public abstract void buildHBody(); public abstract void buildArmLeft(); public abstract void buildArmRight(); public abstract void buildLegLeft(); public abstract void buildLegRight(); public abstract void builder(); }2.具体建造者 ThinPersonBuilder(继承Builder,构造装配各个部件)
/** * @author: wjq * @date: 2018/3/19 * @description: 具体的一个建造者 ThinPersonBuilder (继承Builder,构造装配各个部件) */ public class PersonThinBuilder extends PersonBuilder{ @Override public void buildHead() { System.out.println("建造 头"); } @Override public void buildHBody() { System.out.println("建造 身体"); } @Override public void buildArmLeft() { System.out.println("建造 左胳膊"); } @Override public void buildArmRight() { System.out.println("建造 右胳膊"); } @Override public void buildLegLeft() { System.out.println("建造 左腿"); } @Override public void buildLegRight() { System.out.println("建造 右腿"); } @Override public void builder() { this.buildArmLeft(); this.buildArmRight(); this.buildHBody(); this.buildHead(); this.buildLegLeft(); this.buildLegRight(); } }3.指挥者 (根据需求 具体的指挥创建)
/** * @author: wjq * @date: 2018/3/19 * @description: 指挥者 (根据需求 具体的指挥创建) */ public class Director { private PersonBuilder personBuilder; public void construct(PersonBuilder personBuilder){ personBuilder.builder(); // this.personBuilder = personBuilder; } public PersonBuilder getResult(){ return personBuilder; } }4.Product (最终创建出来的产品)
/** * @author: wjq * @date: 2018/3/19 * @description: Product (最终创建出来的产品) */ public class Product { public static void main(String[] args) { Director director = new Director(); PersonThinBuilder PersonThinBuilder = new PersonThinBuilder(); director.construct(PersonThinBuilder); // director.getResult(); } }具体根据业务需求写 !!!
相关文章推荐
- java设计模式_建造者模式
- java设计模式之建造者模式
- JAVA设计模式之建造者模式
- java设计模式之建造者模式
- java设计模式之建造者模式
- Java设计模式, 单例模式,工厂模式,建造者模式和观察者模式
- 我所了解的java设计模式之建造者模式
- Java设计模式三:建造者模式(Builder Pattern)
- java设计模式之建造者模式
- java设计模式之建造者模式
- Java设计模式——工厂模式,建造者模式
- Java建造者设计模式详解
- Java设计模式--建造者模式【Builder Pattern】
- JAVA设计模式之建造者模式原理与用法详解
- java设计模式(九)--建造者模式
- 【Java设计模式03】——建造者模式
- 【java设计模式】之 建造者(Builder)模式
- java设计模式----建造者模式
- java设计模式(四)——建造者模式
- JAVA设计模式之建造者模式