将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
public class Build {static class Student{String name = null ;int number = -1 ;String sex = null ;public Student(Builder builder){this.name=builder.name;this.number=builder.number;this.sex=builder.sex;}static class Builder{String name = null ;int number = -1 ;String sex = null ;public Builder setName(String name){this.name=name;return this;}public Builder setNumber(int number){this.number=number;return this;}public Builder setSex(String sex){this.sex=sex;return this;}public Student build(){return new Student(this);}}}public static void main(String[] args) {Student A = new Student.Builder().setName("张 三").setNumber(1).build();Student B = new Student.Builder().setSex("男").setName("李四").build();System.out.println(A.name+" "+A.number+" "+A.sex);System.out.println(B.name+" "+B.number+" "+B.sex);}}
- 相同的方法,不同的执行顺序,产生不同的事件结果时,可以采用建造者模式。
- 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,则可以使用该模式。
- 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,这个时候使用建造者模式非常合适。
