相比工厂模式,更容易扩展类。适用于构建参数比较多的对象
缺点:构建繁琐
下面给出 effective java中的例子:
package buileder;
public class Instructions
{
private final String dateOfManufacture;
private final String validity;
private String component;
private String placeOfOrigin;
private String specifications;
public String getDateOfManufacture()
{
return dateOfManufacture;
}
public String getValidity()
{
return validity;
}
public String getComponent()
{
return component;
}
public String getPlaceOfOrigin()
{
return placeOfOrigin;
}
public String getSpecifications()
{
return specifications;
}
private Instructions(Builder builder)
{
this.dateOfManufacture = builder.dateOfManufacture;
this.validity = builder.validity;
this.component = builder.component;
this.placeOfOrigin = builder.placeOfOrigin;
this.specifications = builder.specifications;
}
public static class Builder
{
private final String dateOfManufacture;
private final String validity;
private String component;
private String placeOfOrigin;
private String specifications;
public Builder(String dateOfManufacture, String validity)
{
this.dateOfManufacture = dateOfManufacture;
this.validity = validity;
}
public Builder component(String component)
{
this.component = component;
return this;
}
public Builder placeOfOrigin(String placeOfOrigin)
{
this.placeOfOrigin = placeOfOrigin;
return this;
}
public Builder specifications(String specifications)
{
this.specifications = specifications;
return this;
}
public Instructions build()
{
return new Instructions(this);
}
}
}
TEST:Instructions instructions=new Instructions.Builder("m", "n").component("x").build();
此模式将组合用到极致,本文只举例入门级demo 如有建议请留言