Java设计模式--建造者模式

本文通过构建汽车的例子详细解析了建造者模式的实现过程。利用抽象类定义了一个汽车建造者的骨架,并通过具体的品牌实现展示了如何逐步构造一个完整的汽车对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所谓建造者就是“分步构建一个复杂的对象”,当每一步构建完毕才是一个完整的对象,比如汽车,它有好多零件,轮胎、发动机、方向盘等等零件,当中任何一个零件不完整都无法构建这个汽车,是个半成品,只有当中所有零件都完成了,这时候汽车才可以驾驶。

知识点:抽象类、继承

代码如下:

汽车产品

package com.chris.builder;

public class Car {
	
	private String tyre;//轮胎
	private String engine;//引擎
	private String steering;//方向盘
	
	public String getTyre() {
		return tyre;
	}
	public void setTyre(String tyre) {
		this.tyre = tyre;
	}
	public String getEngine() {
		return engine;
	}
	public void setEngine(String engine) {
		this.engine = engine;
	}
	public String getSteering() {
		return steering;
	}
	public void setSteering(String steering) {
		this.steering = steering;
	}
	
}
构建个抽象类

package com.chris.builder;

public abstract class CarBuilder {
	
	protected Car car = new Car();
	public abstract void buildTyre();//生产轮胎
	public abstract void buildEngine();//生产引擎
	public abstract void buildSteering();//生产方向盘
	
	public Car createCar(){//构建汽车
		return car;
	}
	
}

构建一个具体品牌汽车

package com.chris.builder;

public class BmwCar extends CarBuilder {

	@Override
	public void buildTyre() {
		car.setTyre("组装宝马轮胎");
	}

	@Override
	public void buildEngine() {
		car.setEngine("组装宝马引擎");
	}

	@Override
	public void buildSteering() {
		car.setSteering("组装宝马方向盘");
	}

}

创建汽车实体的指令交给一个控制者

package com.chris.builder;

public class CarController {
	public Car construct(CarBuilder carBuilder){
		carBuilder.buildEngine();
		carBuilder.buildSteering();
		carBuilder.buildTyre();
		Car createCar = carBuilder.createCar();
		return createCar;
	}
	
	//测试
	public static void main(String[] args) {
		BmwCar bmw = new BmwCar();
//		BencCar benc = new BencCar();
		CarController controller = new CarController();
		Car bmwCar = controller.construct(bmw);
//		Car bcCar = controller.construct(benc);
		System.out.println(bmwCar.getEngine());
		System.out.println(bmwCar.getSteering());
		System.out.println(bmwCar.getTyre());
	}
	
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值