利用建造者模式来优化一个对象的有多个构造器的情况比如下面这个类有5个构造器
package com.djk.design.factory.build;
public class ExampleBuilder
{
private String name;
private int age;
public ExampleBuilder(String name) {
super();
this.name = name;
}
public ExampleBuilder(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
优化后的代码:
package com.djk.design.factory.build;
public class ExampleBuilder
{
private String name;
private int age;
private ExampleBuilder(Bulider bulider)
{
this.name = bulider.name;
this.age = bulider.age;
}
static class Bulider
{
private String name;
private int age;
public Bulider addName(String name)
{
Bulider.this.name = name;
return Bulider.this;
}
public Bulider addAge(int age)
{
Bulider.this.age = age;
return Bulider.this;
}
public ExampleBuilder createExampleBuilder()
{
return new ExampleBuilder(this);
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.djk.design.factory.build;
public class Test
{
public static void main(String[] args) {
ExampleBuilder.Bulider builder = new ExampleBuilder.Bulider();
builder.addAge(24).addName("djk");
ExampleBuilder exampleBuilder = builder.createExampleBuilder();
System.out.println(exampleBuilder);
}
}