以下是使用Java编写建造者模式的示例代码:
// 产品类
class Product {
private final String name;
private final int price;
public Product(String name, int price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
}
// 建造者基类
abstract class Builder {
protected Product product;
public Builder() {
this.product = new Product("", 0);
}
public Product getProduct() {
return product;
}
public abstract void buildName();
public abstract void buildPrice();
}
// 具体建造者类
class ConcreteBuilder extends Builder {
public ConcreteBuilder() {
super();
}
@Override
public void buildName() {
product.setName("ConcreteProduct");
}
@Override
public void buildPrice() {
product.setPrice(100);
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
builder.buildName();
builder.buildPrice();
Product product = builder.getProduct();
System.out.println("Product name: " + product.getName());
System.out.println("Product price: " + product.getPrice());
}
}
在这个示例中,我们定义了一个产品类Product,以及一个建造者基类Builder和两个具体建造者类ConcreteBuilder。具体建造者类ConcreteBuilder实现了Builder类中的buildName和buildPrice方法,用于构建产品类的属性。客户端代码Client中,我们创建了一个ConcreteBuilder对象,并调用buildName和buildPrice方法来构建产品类的属性,最后通过getProduct方法获取构建好的产品对象,并输出其属性值。