public class ComplexObject { private String property1; private int property2; private OtherObject property3; @Override public String toString() { return "ComplexObject [property1=" + property1 + ", property2=" + property2 + ", property3=" + property3 + "]"; } } public interface ObjectBuilder { ObjectBuilder setProperty1(String value); ObjectBuilder setProperty2(int value); ObjectBuilder setProperty3(OtherObject value); ComplexObject build(); } public class ConcreteBuilder implements ObjectBuilder { private ComplexObject object; public ConcreteBuilder() { this.object = new ComplexObject(); } @Override public ObjectBuilder setProperty1(String value) { object.setProperty1(value); return this; } @Override public ObjectBuilder setProperty2(int value) { object.setProperty2(value); return this; } @Override public ObjectBuilder setProperty3(OtherObject value) { object.setProperty3(value); return this; } @Override public ComplexObject build() { return object; } } public class Director { private ObjectBuilder builder; public Director(ObjectBuilder builder) { this.builder = builder; } public ComplexObject construct() { return builder.setProperty1("value1") .setProperty2(2) .setProperty3(new OtherObject()) .build(); } } public class Main { public static void main(String[] args) { ObjectBuilder builder = new ConcreteBuilder(); Director director = new Director(builder); ComplexObject object = director.construct(); System.out.println(object); } }


上一篇:
下一篇:
切换中文