zoukankan      html  css  js  c++  java
  • 设计模式之建造者模式

    建造者模式

    将一个复杂的对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示

    Product类

    package com.hml.builder;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Product {
       private List<String> parts = new ArrayList<String>();
       
       public void addPart(String part) {
           parts.add(part);
       }
       public void show() {
           
       }
    }

    Builder

    package com.hml.builder;
    
    public interface Builder {
        public void buildPathA();
        public void buildPathB();
        
        public Product getResult();
    }

    ConcreateBuilderA

    package com.hml.builder;
    
    public class ConcreateBuilderA implements Builder {
        
        private Product p = new Product();
    
        public void buildPathA() {
           p.addPart("A");
        }
    
        public void buildPathB() {
            p.addPart("B");
        }
    
        public Product getResult() {
            return p;
        }
    
    }

    ConcreateBuilderB

    package com.hml.builder;
    
    public class ConcreateBuilderB implements Builder {
        
        private Product p = new Product();
    
        public void buildPathA() {
           p.addPart("A");
        }
    
        public void buildPathB() {
            p.addPart("B");
        }
    
        public Product getResult() {
            return p;
        }
    
    }

    Director

    package com.hml.builder;
    
    public class Director {
        public Director(Builder builder) {
            builder.buildPathA();
            builder.buildPathB();
        }
    }

    类图


    构建者模式主要是用于创建一些比较复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。

  • 相关阅读:
    Git 使用记录
    AngularJS $http返回的数据类型
    angularJS 使用$http 出现 $http.get(...).success is not a function
    JS数组及其方法(slice,contact...)
    HTML5的localStorage和sessionStorage
    promise async await 结合 demo2
    promise async await 结合 demo1
    git 命令
    git
    new 优先级的题目
  • 原文地址:https://www.cnblogs.com/heml/p/4623140.html
Copyright © 2011-2022 走看看