Builder模式总结

2020-01-16  本文已影响0人  陈道乐

总结心得 =》》》 道理全听,举步维艰,道理不听 死路一条!!!

好了我们准备开始, GO!!


first one ==mXXX 之罪==

    class MyClass {
        private int mOld;  //加这个的过错在哪里!
    
    }

1. 首先颜值问题

class MyClass {
    private Md5 mMd5;  // 这是什么鬼东西,混淆视听
    private Mon mMon;
}

2.其次ide 智能生成, 瞬间蒙蔽

class MyClass {
    private String mName;
    
    public String getMName() {  //卧槽,无情
        return mName;
    }
}

3.捅窟窿,越来越大

class MyClass {
    private String mName;
    
    public void foo() { //当一大推m n 打头的词汇出现的时候,瞬间蒙蔽
        int member;
        int nmm;
        int mn;
        int master
    }
}

==最后我们该怎么做==

class MyClass {
    int old; //保持词义,善用this. 这么长的前缀,难道还看不出是成员变量,
    
    public MyClass (int old) {
        this.old = old;
    }
    
    public getOld() {
        return old;
        //return this.old;
    }
}

second ==view 创建 及其初始化==

class MyDialog extends Dialog {
    private Button btnA;
    
    public MyDialog(Context context) {
        super(Context);
        //有多次使用的,请放到初始化中获取, 不要放到initView
        this.btnA = findViewById (xxxxx);
        initView();
        
    }
    
    public void initView() {
        //TODO:页面外观调整
    }
    
    public void initEvent() {
        //TODO:事件绑定
    }
}

last ==Builder模式优化结构==

class MyClass {
    private int old;
    
    //既然已经要用builder,就请屏蔽构造函数, 具体看情况
    private Myclass() {
        
    }
    
    //附加提供一个友好的方法
    public static MyClass newbuilder() {
        return new Builder();
    }
    
    public static Builder() {
        private int old;
        
        public Builder setOld(int old) {
            this.old = old;
        }
        
        public MyClass build () {
            MyClass myClass = new MyClass();
            //这样就爽了, 不用在MyClass 构造函数里面加一大堆参数, 简洁,也不用加set方法
            myClass.old = this.old;
            return myClass;
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读