Design Pattern -- Builder

public class ToBeBuilt {
    
    private final int    age;
    private final int    safeID;
    private final String name;
    private final String address;
    
    public int getAge() {
        return age;
    }
 
    public int getSafeID() {
        return safeID;
    }
 
    public String getName() {
        return name;
    }
 
    public String getAddress() {
        return address;
    }
    
    public static class Builder {
        private int    age     = 0;
        private int    safeID  = 0;
        private String name    = null;
        private String address = null;
        
        public Builder(String name) {
            this.name = name;
        }
 
        public Builder age(int val) {
            age = val;
            return this;
        }
 
        public Builder safeID(int val) {
            safeID = val;
            return this;
        }
 
        public Builder address(String val) {
            address = val;
            return this;
        }
 
        public ToBeBuilt build() { // 构建,返回一个新对象
            return new ToBeBuilt(this);
        }
    }
 
    private ToBeBuilt (Builder b) {
        age = b.age;
        safeID = b.safeID;
        name = b.name;
        address = b.address;
    }
    
    public static void main(String args[]){
        ToBeBuilt ddc = new ToBeBuilt.Builder("Ace").age(10).address("beijing").build();
        System.out.println("name=" + ddc.getName() + "age =" + ddc.getAge()+ "address" + ddc.getAddress());
    }
}

 

posted on 2015-08-12 22:02  chaseblack  阅读(116)  评论(0编辑  收藏  举报

导航