java设计模式-建造者模式

来源:互联网 发布:embedpano.js下载 编辑:程序博客网 时间:2024/06/05 16:47

android中常见的使用Alertdialog.builder........creat();

使用建造者模式,可以少些构造器,可以避免由于构造器中数据类型相同后传入数据错误,而导致的结果错误;等等

现在来手动实现一个:学生类,name/age/number/class;内部一个内部类,该内部类的变量类型和个数与student类相同,通过该内部类的变量可以生产一个student对象。

public class BuilderStudent {    String name;    String classs;    String age;    String number;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getClasss() {        return classs;    }    public void setClasss(String classs) {        this.classs = classs;    }    public String getAge() {        return age;    }    public void setAge(String age) {        this.age = age;    }    public String getNumber() {        return number;    }    public void setNumber(String number) {        this.number = number;    }    public BuilderStudent(Builder builder) {        this.name = builder.name;        this.classs = builder.classs;        this.age = builder.age;        this.number = builder.number;    }    public static class Builder {        String name;        String classs;        String age;        String number;        public Builder() {        }        public Builder setName(String name) {            this.name = name;            return this;        }        public Builder setClasss(String classs) {            this.classs = classs;            return this;        }        public Builder setAge(String age) {            this.age = age;            return this;        }        public Builder setNumber(String number) {            this.number = number;            return this;        }        public BuilderStudent creat() {            return new BuilderStudent(this);        }    }}
调用:
                                                                                                                                                                       
BuilderStudent student=new BuilderStudent.Builder().setAge("AGE").setClasss("CLASS").setName("NAME").setNumber("NUMBER").creat();Log.e("信息",student.getName()+"="+student.getAge()+"="+student.getClasss()+"="+student.getNumber());
BuilderStudent student=new BuilderStudent.Builder().setAge("AGE").setClasss("CLASS").setName("NAME").setNumber("NUMBER").creat();        Log.e("信息",student.getName()+"="+student.getAge()+"="+student.getClasss()+"="+student.getNumber());


 
原创粉丝点击