设计模式之建造者模式

        建造者模式分为三部分:

  • 建造对象:要被建造的对象,即产品。
  • 建造者:建造产品的每个部件。
  • 指挥者:指挥建造者依次建造产品的部件。        
        比如要组装一台电脑,建造者需要组装键盘、CPU、主板、显示器等等,指挥者则指挥建造者先组装主板,再装CPU、内存等等,组装完毕之后,建造者将返回一个产品对象,即组装好的电脑。
对象接口:
public interface Computer {
	void CPU();
	void mem();
	void adapter();
	void keyboard();
	void mouse();
	void fan();
	void monitor();
	void mainboard();
	void chassis();
	void show();
}
要被组装的对象:
public class Windows implements Computer {
	@Override
	public void CPU() {
		System.out.println("CPU组装完成。");
	}
	@Override
	public void mem() {
		System.out.println("内存组装完成。");
	}
	@Override
	public void adapter() {
		System.out.println("适配器组装完成。");
	}
	@Override
	public void keyboard() {
		System.out.println("键盘组装完成。");
	}
	@Override
	public void mouse() {
		System.out.println("鼠标组装完成。");
	}
	@Override
	public void fan() {
		System.out.println("散热器组装完成。");
	}
	@Override
	public void monitor() {
		System.out.println("显示器组装完成。");
	}
	@Override
	public void mainboard() {
		System.out.println("主板组装完成。");
	}
	@Override
	public void chassis() {
		System.out.println("机箱组装完成。");
	}
	@Override
	public void show() {
		System.out.println("电脑组装完成!");
	}
}
建造者:
public class ComputerBuilder {
	private Computer computer = new Windows();
	public void assemblingCPU() {
		computer.CPU();
	}

	public void assemblingMem() {
		computer.mem();
	}

	public void assemblingAdapter() {
		computer.adapter();
	}

	public void assemblingKeyboard() {
		computer.keyboard();
	}

	public void assemblingMouse() {
		computer.mouse();
	}

	public void assemblingFan() {
		computer.fan();
	}

	public void assemlingMonitor() {
		computer.monitor();
	}

	public void assemblingMainboard() {
		computer.mainboard();
	}

	public void assemblingChassis() {
		computer.chassis();
	}
	
	public Computer getComputer() {
		return computer;
	}

}
指挥者:
public class BuilderDirector {
	public void buildComputer(ComputerBuilder computerBuilder) {
		computerBuilder.assemblingMainboard();
		computerBuilder.assemblingCPU();
		computerBuilder.assemblingMem();
		computerBuilder.assemblingKeyboard();
		computerBuilder.assemblingFan();
		computerBuilder.assemblingChassis();
		computerBuilder.assemblingAdapter();
		computerBuilder.assemblingMouse();
		computerBuilder.assemlingMonitor();
	}
}
开始组装电脑:
public class Main {
	public static void main(String[] args) {
		BuilderDirector builderDirector = new BuilderDirector();
		ComputerBuilder computerBuilder = new ComputerBuilder();
		builderDirector.buildComputer(computerBuilder);
		Computer computer = computerBuilder.getComputer();
		computer.show();
	}
}
输出:

主板组装完成。

CPU组装完成。

内存组装完成。

键盘组装完成。

散热器组装完成。

机箱组装完成。

适配器组装完成。

鼠标组装完成。

显示器组装完成。

电脑组装完成!


        建造者模式可以对客户端隐藏建造细节,客户端只需要创建建造者和指挥者即可得到成品。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值