设计模式之建造者模式

    建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。即组装一个完整的产品需要不同的部件,而由于部件的不同又可以组装出不相同的产品。

    举个简单的例子:就像组装电脑,需要用显示器,主机,键盘,和鼠标。组装过程中如果显示器我分别用普通显示器和液晶显示器则会出现不相同的两个成品。如下:


abstractclass Computer
{
	public abstract void AddMonitor();
	public abstract void AddHost();
	public abstract void AddKeyboard();
	public abstract void AddMouse();
}
 
classConnectComputer1:Computer
{
	public override void AddMonitor();
	{
		console.WriteLine("液晶显示器");
	}
	public override void AddHost();
	{
		console.WriteLine("联想主机");
	}
	public override void AddKeyboard();
	{
		console.WriteLine("联想键盘");
	}
	public override void AddMouse();
	{
		console.WriteLine("联想鼠标");
	}
}

ConnectComputer2 中将“液晶显示器”换成“普通显示器”。


classBuilder
{
	private Computer cc;
	public Builer(Computer cc)
	{
		this.cc=cc;
	}
 
	public void Assemble()
	{
		cc.AddMonitor();
		cc.AddHost();
		cc.AddKeyboard();
		cc.AddMouse();
	}
}

主函数如下:


Computerpc1=new ConnectComputer1();
Builderbb1=new Builder(pc);
bb1.Assemble();
 
Computerpc2=new ConnectComputer2();
Builderbb2=new Builder(pc);
bb2.Assemble();

由上面的例子则可得出两种不同的电脑。

    综上所述:建造者模式就是将组成一个整体的各个部分抽象出相同的方法,放在超类;而要得到一个产品,则实例化一个具体对象继承超类,完成其方法即可。再通过构建者将其输出即可。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值