Builer模式

public class Task {
    public final long id;
    public String summary;
    public String description;
    public boolean done;

    public Task(long id,String summary,String description, boolean done){
        this.id = id;
        this.summary = summary;
        this.description = description;
        this.done = done;
    }

    public static TaskBuilder builder(){
        return new TaskBuilder();
    }

    public static class  TaskBuilder{
        private long id;
        private String summary = "";
        private String description = "";
        private boolean done = false;
        private Date dueDate;

        public TaskBuilder setId(long id){
            this.id = id;
            return  this;
        }

        public TaskBuilder setDescription(String description) {
            this.description = description;
            return  this;
        }

        public TaskBuilder setDone(boolean done) {
            this.done = done;
            return  this;
        }

        public TaskBuilder setDueDate(Date dueDate) {
            this.dueDate = dueDate;
            return  this;
        }

        public TaskBuilder setSummary(String summary) {
            this.summary = summary;
            return  this;
        }

        public Task build(){
            return  new Task(id, summary, description, done);
        }
    }

    @Override
    public String toString() {
        return "Task{" +
                "id=" + id +
                ", summary='" + summary + '\'' +
                ", description='" + description + '\'' +
                ", done=" + done +
                '}';
    }
}

 

posted @ 2017-07-25 14:55  halo-漾  阅读(228)  评论(0编辑  收藏  举报