El Builder del proyecto de uso

1 tema

El Builder, que puede no estar familiarizado, porque vemos una gran cantidad de marcos de código abierto o de código fuente de Android utiliza en el interior, como esta estructura de código

A a = new A.builder().method1("111").method2("222").build();

Obviamente, la estructura general donde hay constructor () constructor, así como la función build () se utiliza principalmente para hacerlo? No para la construcción de objeto, si es necesario configurar muchos parámetros, entonces uno por uno para fijar un muy complicado no se ve bien, aquí está un ejemplo que muestra simple y crudo. 

 

 

 

 

 

2 Prueba de la implementación del código

package com.example.test1;

public class Student {
    private int id;
    private String name;
    private int age;
    private String classNmae;

    public Student(Builder builder) {
        this.id = builder.id;
        this.name = builder.name;
        this.age = builder.age;
        this.classNmae = builder.classNmae;
    }
    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getClassNmae() {
        return classNmae;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", classNmae='" + classNmae + '\'' +
                '}';
    }

    public static class Builder {
        private int id;
        private String name;
        private int age;
        private String classNmae;

        public Builder() {}
        public Builder id(int id) {
            this.id = id;
            return this;
        }
        public Builder name(String name) {
            this.name = name;
            return this;
        }
        public Builder age(int age) {
            this.age = age;
            return this;
        }
        public Builder className(String classNmae) {
            this.classNmae = classNmae;
            return this;
        }
        public Student build() {
            return new Student(this);
        }
    }
}
                Student student = new Student.Builder()
                .name("chenyu")
                .age(28)
                .id(1)
                .className("erzhong")
                .build();
        Log.i(TAG, "student toString is:" + student.toString());

 

 

 

3 resultados operativos

18376-18376/com.example.test1 I/chenyu: student toString is:Student{id=1, name='chenyu', age=28, classNmae='erzhong'}

 

 



4 Resumen

1) Es necesario construir una gran cantidad de parámetros cuando un objeto de esta manera

2) el más importante es la necesidad de construir una clase de objeto que tiene una clase pasa como argumento del constructor

    public Student(Builder builder) {
        this.id = builder.id;
        this.name = builder.name;
        this.age = builder.age;
        this.classNmae = builder.classNmae;
    }

3) Por último, función build () que devuelve la clase en sí tiene que ser construido

        public Student build() {
            return new Student(this);
        }

 

Liberadas 1075 artículos originales · ganado elogios 680 · Vistas 3,02 millones +

Supongo que te gusta

Origin blog.csdn.net/u011068702/article/details/105058815
Recomendado
Clasificación