建造者模式

一句話概述

建造模式,是一種對象構建模式。它可以將復雜對象的建造過程抽象出來(抽象類別),使這個抽象過程的不同實現(xiàn)方法可以構造出不同表現(xiàn)(屬性)的對象。

建造者的實現(xiàn)

package com.example.xiao.designpattern;

/**
 * Created by xiao on 2017年4月23日,0023.
 */

public class Person {
    private String mTitle="";//職位
    private String mCall="";//稱呼

    /**
     * 設置職位
     * @param title
     */
    public void setTitle(String title) {
        mTitle = title;
    }

    /**
     * 通過姓氏設置稱呼(自動添加對應職位)
     * @param lastName 姓氏
     */
    public void setCallByLastName(String lastName) {
        mCall = lastName+mTitle;
    }

    public String getCall(){
        return mCall;
    }

    public static class Builder{
        private String mTitle;
        private String mLastName;

        public Builder setTitle(String title) {
            mTitle = title;
            return this;
        }

        public Builder setCallByLastName(String lastName) {
            mLastName = lastName;
            return this;
        }

        public Person build(){
            Person person=new Person();
            person.setTitle(mTitle);
            person.setCallByLastName(mLastName);
            return person;
        }
    }

}

測試類

package com.example.xiao.designpattern;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void builder(View view){
        //不用構造者模式構建對象
        Person person=new Person();
        person.setCallByLastName("張");
        person.setTitle("局長");
        Log.d(TAG, "不用構造者模式構建對象: "+person.getCall());
        //用構造者模式構建對象
        Person person1=new Person.Builder()
                .setCallByLastName("張")
                .setTitle("局長")
                .build();
        Log.d(TAG, "用構造者模式構建對象: "+person1.getCall());
    }
}

打印結果

Paste_Image.png

以上就是構造者模式。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容