设计模式回顾系列文章:主要针对工作中常用常见的设计模式进行整理、总结,同时分享以供大家拍砖。
------------------------------------------------
建造者模式(Builder)
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适用于:
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时,当构造过程必须允许被构造的对象有不同的表示时。
程序实现:
抽象类:
public abstract class AbstractBuilder { abstract public void buildPartA(); abstract public void buildPartB(); abstract public void buildPartC(); }
实现类:
public class ConcreteBuilder extends AbstractBuilder{ @Override public void buildPartA() { System.out.println("buildPartA!"); } @Override public void buildPartB() { System.out.println("buildPartB!"); } @Override public void buildPartC() { System.out.println("buildPartC!"); } }
组装类:
public class Director { public void contruct(AbstractBuilder builder){ builder.buildPartA(); //一些内部逻辑决定构建那些部分 if(true){ builder.buildPartB(); } if(0<1){ builder.buildPartC(); } } }
客户端:
public class Client { public static void main(String[] args) { AbstractBuilder builder=new ConcreteBuilder(); Director director=new Director(); director.contruct(builder); } }
举例:
其实日常工作中经常使用建造者模式,比如最简单的:StringBuffer和StringBuilder.