我正在学习构建器模式,到目前为止我了解到,它是用于初始化的常用模式的一个很好的替代方案:
伸缩构造函数模式
JavaBean 模式
问题是,我真的不喜欢从我的域模型中的对象中删除 getter 和 setter。我总是喜欢将它们保留为 POJO。我不喜欢它的原因之一是:如果我不使用 POJO,那么在使用 ORM 框架时注释变量并不容易......
所以这是我的疑问: - 是否可以在不使用静态内部类的情况下实现构建器模式?- 如果我必须通过使用内部类来使用构建器模式,您认为保留 getter 和 setter 是否正确?- 我做了一个小例子来练习,我试图避免内部类。你能告诉我你怎么看吗?
产品
public class Product
{
private String color;
private int price;
public Product() {
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String toString() {
return getColor() + "\n" + getPrice();
}
}
建造者
public class Builder
{
private Product product;
public Builder() {
product = new Product();
}
public Builder withColor(String color) {
product.setColor(color);
return this;
}
public Builder withPrice(int price) {
product.setPrice(price);
return this;
}
public Product build() {
return product;
}
}**
客户
public class Client
{
public static void main(String[] args) {
System.out.println(new Builder().withColor("Black").withPrice(11).build());
System.out.println("-----------------------------------------------------");
System.out.println(new Builder().withColor("Blue").withPrice(12).build());
}
}