/*
*定義產(chǎn)品類,通常為實現(xiàn)模板模式方法的具體執(zhí)行類
* */
public class Product {
public void doSomething() {
// 獨立的業(yè)務(wù)邏輯
}
}
public abstract class Builder {
//設(shè)置產(chǎn)品的不同部分隐锭,以獲得不同的產(chǎn)品
public abstract void setPart();
//建造產(chǎn)品
public abstract Product buildProduct();
}
/*
* 創(chuàng)建具體的建造者渐扮,有多個產(chǎn)品類就有幾個具體的建造者论悴,而且這些多個產(chǎn)品具有相同的接口或者抽象類
* */
public class ConcreteProductBuilder extends Builder {
Product product = new Product();
@Override
public void setPart() {
// 特有的內(nèi)部邏輯處理
}
@Override
public Product buildProduct() {
// TODO Auto-generated method stub
return product;
}
}
/*
* 創(chuàng)建導(dǎo)演類
* */
public class Director {
Builder productBuilder = new ConcreteProductBuilder();
//構(gòu)建不同的產(chǎn)品
public Product getProduct(){
productBuilder.setPart();
return productBuilder.buildProduct();
}
}
public class Client {
public static void main(String[] args) {
Director director = new Director();
director.getProduct();
}
}