Builder模式

sample:


public class User {

    private String name;

    private int age;

    ...

    public User(Builder builder) {

        this.name = builder.name;

        ...

    }

    ...

    public class Builder {

        private String name;        

        private int age;

        ...

        public Builder name(String name) {         

            this.name = name

        }

        ...

        public User build() {

            return new User(this);

        }

    }

}

new User.Builder().name("王五").age(20) .phone("123456789") .address("亚特兰蒂) .build();

设计初衷:

public User(String firstName, String lastName, int age, String phone, String address) 

一般设计类的构造函数进行实例化,属性越多意味设计更多的构造的函数来应对所有情况。

或者使用一个基本构造函数,其他属性通过get,set操作(属性public化)。

那如何既想一条语句完成创建对象,有不想创建后被修改属性?

Builder模式将一个类的实例话完全交给了Builder,自己属性和构造函数全部隐藏为private。

划重点:

1.具体Class中只有一个Builder为参数的构造函数

2.Builder的属性与具体Class的属性完全吻合

3.Builder采用链式调用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 : Android中的AlertDialog用的就是builder设计模式,图片加载控件Universal-...
    正阳Android阅读 2,808评论 0 0
  • 一,定义 Builder模式是一种广泛使用的设计模式,定义是:将一个复杂对象的构建与它的表示分离,使得同样的构建过...
    爱你雨落阅读 502评论 0 0
  • Builder模式是一种一步一步创建一个复杂对象的设计模式,我认为这种设计模式的精髓就主要有两点:其一,用户使用简...
    Ryan_Hoo阅读 1,118评论 0 0
  • 在设计模式中对Builder模式的定义是用于构建复杂对象的一种模式,所构建的对象往往需要多步初始化或赋值才能完成。...
    Android技术研究阅读 4,587评论 0 0
  • 我们之前一直都在Activity中创建各种控件,做了很多的小项目,可以说Android作为四大组件之一,是唯一一个...
    季白zy阅读 227评论 0 0