1. 程式人生 > >模仿OKhttp框架Builder初始化資料,如何優雅地裝逼

模仿OKhttp框架Builder初始化資料,如何優雅地裝逼

建立類

package com.lisn.testapp;

public class Taskinfo {
    private String name; //檔名
    private String url;  //檔案url
    private int threadcount; //文需要的執行緒
    public Taskinfo(Builder builder) {
        this.name = builder.name;
        this.url = builder.url;
        this.threadcount = builder.threadcount;
    }
    public static class Builder{
        private String name;
        private String url;
        private int threadcount;
        public Builder setName(String name){
            this.name = name;
            return this;
        }
        public Builder setUrl(String url){
            this.url = url;
            return this;
        }
        public Builder setThreadcount(int threadcount){
            this.threadcount = threadcount;
            return this;
        }
        public Taskinfo build(){
           return new Taskinfo(this);
        }
    }
    @Override
    public String toString() {
        return "Taskinfo{" +
                "name='" + name + '\'' +
                ", url='" + url + '\'' +
                ", threadcount=" + threadcount +
                '}';
    }
}


使用方法

        Taskinfo taskinfo = new Taskinfo.Builder()
                .setName("百度")
                .setUrl("www.baidu.com")
                .setThreadcount(5)
                .build();
        Log.e("TAG", "onCreate: "+taskinfo);