Builder建造者模式:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
例子:
- public class Product {
- private ArrayList<string></string> parts = new ArrayList<string></string>();
- public void add(String part) {
- parts.add(part);
- }
- public void show() {
- System.out.println("Product有以下几部分构成:" );
- for (String s : parts) {
- System.out.println(s);
- }
- }
- }
- public interface Builder {
- public void buildPartA();
- public void buildPartB();
- public void buildPartC();
- public Product getProduct();
- }
- public class Worker implements Builder {
- private Product product;
- public void buildPartA() {
- product = new Product();
- product.add("A部分" );
- }
- public void buildPartB() {
- product.add("B部分" );
- }
- public void buildPartC() {
- product.add("C部分" );
- }
- public Product getProduct() {
- return product;
- }
- }
- public class Designer {
- public void order(Builder builder) {
- builder.buildPartA();
- builder.buildPartB();
- builder.buildPartC();
- }
- }
- public class Client {
- public static void main(String[] args) {
- Designer designer = new Designer();
- Builder builder = new Worker();
- designer.order(builder);
- Product product = builder.getProduct();
- product.show();
- }
- }