给人的直观感受是把行为从类中抽象出来,类提要求,其功能实现是借助别的类(builder)提供的函数,让builder提供行为。相对来讲这个模式不是太难。java
builder把类中相同的代码抽象了出来,实现了代码的复用。一样的builder一样能够扩展功能。设计模式
builder接口:行为的基类。创建不一样的行为集合。ide
interface Builder { void buildA(); void buildB(); void buildC(); }
ABuilder具体的行为提供者。函数
public class ABuilder implements Builder { @Override public void buildA() { System.out.println("造A型房子步骤1"); } @Override public void buildB() { System.out.println("造A型房子步骤2"); } @Override public void buildC() { System.out.println("造A型房子步骤3"); } }
client 提要求的客户。测试
public class Client { Builder builder; Client(Builder builder) { this.builder = builder; } void getHome() { builder.buildA(); builder.buildB(); builder.buildC(); System.out.println("A型房子完成"); } }
测试ui
class Test { public static void main(String[] args) { ABuilder home = new ABuilder(); Client client = new Client(home); client.getHome(); } }
结果:this
造A型房子步骤1 造A型房子步骤2 造A型房子步骤3 A型房子完成
提示:看了好多设计模式,你会发现里面的构造共同处:在A类中引用B接口,C类实现B接口提供函数,在A中委托给C类实现。这是java多态精髓所在。
spa