不蹭热度了,传统生成器模式(建造者模式)——Builder Pattern

不蹭热度了,传统生成器模式(建造者模式)——Builder Pattern

生成器模式

实际中,更新任何类都可以考虑成生成器模式。

组成

Product

Product。

代码片

// Product
public class Product{
	Unit1 u1;
	Unit2 u2;
	public Unit1 createU1(){
		return new Unit1();
	}
	public Unit2 createU2(){
		return new Unit2();
	}
	public void composite(){
		//Unit1+Unit2
	}
}

Unit1。

代码片

// Unit1
public class Unit1{
	
}

Unit2。

代码片

// Unit2
public class Unit2{
	
}

IBuild

IBuild。

代码片

// IBuild
public interface IBuild{
	public Product create();
}

Builder

Builder。

代码片

// Builder
public class Builder implements IBuild{
	//
	Product p=new Product();
	public void createU1(){
		p.createU1();
	}
	public void createU2(){
		p.createU2();
	}
	public Product composite(){
		p.composite();
		return p;
	}
	@Override
	public Product create(){
		createU1();
		createU2();
		return composite();
	}
}

Director

Director。

代码片

// Director
public class Director{
	//
	private IBuild build;
	public Director(IBuild build){
		this.build=build;
	}
	//
	public Product build(){
		return build.create();
	}
}

总结

总之,对于生成器模式创建复杂对象而言,主要原则是对象构建过程与表示相分离。
网上引用:
1.客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象。
2.每一个具体建造者都相对独立,与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者,扩展方便,符合开闭原则3.可以更加精细地控制产品的创建过程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sinat_38849643

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值