有人可以告诉我们必须如何使用构建器和命令模式吗? 以下代码可以是构建器模式吗?
public Customer(String name,double age,
String account)
throws SQLException {
this.name = name;
this.age = age;
this.account = account;
Customer.dao.create(this);
}
public void setAccount(String account) {
this.account = account;
}
public void setName(String name) {
this.name = name;
}
public void setAge(double age) {
this.age = age;
}
答案 0 :(得分:2)
您提供的代码既不是命令模式也不是构建器模式。它是一个JavaBean,它有一个带有副作用的构造函数,即它调用DAO。这似乎不是一个好主意。
当您有许多需要设置的实例变量时,Builder模式非常有用,其中一些变量不是必需的。它避免了巨大的构造函数和重载构造函数的需要。命令模式根本不适合您正在执行的操作 - 当您希望某些类型表示系统中的操作或任务时,可以使用命令模式。
答案 1 :(得分:0)
构建器模式抽象对象的构造。根据你的例子我建议遵循结构
public interface Builder {
public Costumer buildCostumer(String name, double age, String account);
}
public class ConcreteBuilder implements Builder {
public Costumer buildCostumer(String name, double age, String account) {
return new Costumer(name, age, account);
}
}
在您的应用程序中,它将按如下方式使用:
public class Application {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
Costumer c = builder.buildCostumer("Hugo Bosh", 37, "account");
//do what you want with the costumer
}
}