【发布时间】:2016-05-02 01:26:24
【问题描述】:
我正在阅读以下链接:
我注意到在使用工厂模式时,我看到的所有示例都使用工厂中的无参数构造函数。在最后一个链接中,建议如果参数增长,请考虑使用构建器模式。我了解何时以及如何使用构建器模式,但工厂模式让我感到困惑。如果你的子类有参数,其中一些是子类独有的,会发生什么?在这种情况下你会怎么做?
举个例子:
假设您有以下抽象类:
public abstract class Client {
private String clientID;
private String clientFirstName;
private String clientLastName;
public Client(String ID, String firstname, String lastname)
{
this.clientID = ID;
this.clientFirstName = firstname;
this.clientLastName = lastname;
}
}
以及以下子类:
public class Domestic extends Client {
public Domestic(String ID, String firstname, String lastname) {
super(ID, firstname, lastname);
}
}
public class International extends Client {
private List<String> documents;
public International(String ID, String firstname, String lastname, List<String> documents) {
super(ID, firstname, lastname);
this.documents = documents;
}
现在,参数不足以使用构建器模式是吗?这样做有什么问题吗:
Client international = new International(id, firstname, lastname, documents);
或
International internationalObj = new International(id, firstname, lastname, documents);
【问题讨论】:
标签: java design-patterns