effective java之Buileder模式创建对象

相比工厂模式,更容易扩展类。适用于构建参数比较多的对象

缺点:构建繁琐

下面给出 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 如有建议请留言

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值