建造者模式

一句话概述

建造模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。

建造者的实现

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

以上就是构造者模式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容