建造者模式
- 描述
- 基本要素
- 協調類
- 使用
描述
建造者模式屬于創造型設計模式。
通常用于構建一系列復雜對象,這些對象有一定的共性。
我們可以通過不同的建造者,組裝不同的對象
與工廠模式的區別,建造者模式更側重與基于基礎構件組裝而非直接創建基礎構件
基本要素
- 定義產品類
public class Product {public void method() {// code}
}
- 定義抽象建造者
public abstract class Builder {public abstract void process();public abstract Product build();
}
- 定義具體建造者
public class ABuilder extends Builder {Product product = new Product();@Overridepublic void process() {product.method1();product.method2();}@Overridepublic Product build() {return product;}
}public class BBuilder extends Builder {Product product = new Product();@Overridepublic void process() {product.method1();product.method3();}@Overridepublic Product build() {return product;}
}
協調類
與工廠方法類似,為了避免調用方與眾多建造者子類直接交互。
我們可以定義一個中間協調類
public class BuilderCoordinator {private Builder aBuilder = new ABuilder();private Builder bBuilder = new BBuilder();public Product AProduct() {aBuilder.process();return aBuilder.build();}public Product BProduct() {aBuilder.process();return aBuilder.build();}
}
使用
public class Sample {public static void main(String[] args) {BuilderCoordinator coordinator = new BuilderCoordinator();Product ap = coordinator.AProduct();Product bp = coordinator.BProduct();}
}