假如现在生活在90年代 有一个Person类,但是不是所有的人都有手机,不是所有的人都有房子,不是所有的人都有电脑.....我们想通过任意一个属性去创建一个Person对象,那当然很简单,你想怎么创建就写一个什么样的构造方法,但是一个人可以有好多好多东西鸭。。这时候就可以使用建造者模式
/** * @author chunying */ public class BuilderDemo { static class Person { private String computer = null; private String car = null; private String phone = null; public Person(PersonBuilder personBuilder) { this.computer = personBuilder.computer; this.car = personBuilder.car; this.phone = personBuilder.phone; } static class PersonBuilder { private String computer = null; private String car = null; private String phone = null; public PersonBuilder setComputer(String computer) { this.computer = computer; return this; } public PersonBuilder setCar(String car) { this.car = car; return this; } public PersonBuilder setPhone(String phone) { this.phone = phone; return this; } public Person build() { return new Person(this); } } @Override public String toString() { return "Person{" + "computer='" + computer + '\'' + ", car='" + car + '\'' + ", phone='" + phone + '\'' + '}'; } } public static void main(String[] args) { Person p = new Person.PersonBuilder().setCar("笨池").setComputer("i11版MACP").build(); System.out.println(p); } }