组装模式java_【Java设计模式】构造器模式

本文介绍了一种设计模式——建造者模式,该模式将构造过程与表示分离,使得复杂的构造过程可以创建不同的表示。通过组装不同配置的计算机实例来具体说明其应用场景及实现方式。

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

【定义】

将构造过程与表示分开,以便于相同的构造过程创建不同的表示。

如果对象的构造过程相对复杂,这样的构造模式会非常有效。

fff0e4c5a45221ea9cf48c701641a48d.png

【实例】

我们需要根据需求组装相应的计算机,例如硬盘500G,内存8G,CPU8核等等。

【实现】

定义构造步骤:

interface IBuilder

{

void BuildBody();

void InsertWheels();

void AddHeadlights();

Product GetVehicle();

}

定义一辆车的构造方法:

class Car implements IBuilder

{

private Product product = new Product();

@Override

public void BuildBody()

{

product.Add("This is a body of a Car");

}

@Override

public void InsertWheels()

{

product.Add("4 wheels are added");

}

@Override

public void AddHeadlights()

{

product.Add("2 Headlights are added");

}

@Override

public Product GetVehicle()

{

return product;

}

}

定义摩托车的构造方法:

// Motorcycle is a ConcreteBuilder

class MotorCycle implements IBuilder

{

private Product product = new Product();

@Override

public void BuildBody()

{

product.Add("This is a body of a Motorcycle");

}

@Override

public void InsertWheels()

{

product.Add("2 wheels are added");

}

@Override

public void AddHeadlights()

{

product.Add("1 Headlights are added");

}

@Override

public Product GetVehicle()

{

return product;

}

}

定义产品:

// "Product"

class Product

{

// We can use any data structure that you prefer. We have used LinkedList here.

private LinkedList parts;

public Product()

{

parts = new LinkedList();

}

public void Add(String part)

{

//Adding parts

parts.addLast(part);

}

public void Show()

{

System.out.println("\n Product completed as below :");

for(int i=0;i

{

System.out.println(parts.get(i));

}

}

}

生产商:

// "Director"

class Director

{

IBuilder myBuilder;

// A series of steps—for the production

public void Construct(IBuilder builder)

{

myBuilder=builder;

myBuilder.BuildBody();

myBuilder.InsertWheels();

myBuilder.AddHeadlights();

}

}

测试:

702031b5f45a8f50de41d6f3d9e60f9a.png

bab43bfd9fa83f335a24bad1687651b9.png

标签:Product,Java,void,product,构造,Add,Override,设计模式,public

来源: https://blog.csdn.net/Day_and_Night_2017/article/details/98500964

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值