除了构造函数重载java之外的最佳实践/设计模式
我有一个具有多个构造函数的类。每个代表不同的用例。
public class ABC {
public ABC(int x) {
...
}
public ABC(ArrayList<String> Stringarray) {
...
}
..many more constructors..
}
到目前为止,构造函数重载是干净的解决方案,直到我遇到了来自 java 编译器的相同擦除问题。例如,我想添加另一个最终具有相同擦除的构造函数,所以我只是选择包含一个默认参数来解决现在的问题,如下所示:
public ABC(ArrayList<String> stringArray) {
…
}
public ABC(ArrayList<Integer> integerArray, boolean… sameErasureFlag) {
…
}
但是我有一种强烈的感觉,对于这个用例来说,有这么多构造函数可能不是一个好的设计模式。也许有一个更好的解决方案或最佳实践设计模式用于这种场景。我正在查找构建器模式,但不确定这是否正确/更好。有什么建议吗?
回答
我有一个具有多个构造函数的类。每个代表不同的用例。
那么简单的答案是:将每个用例变成它自己独特的类。
有观点认为,你在一个类中的多个不相关的领域,而每个“用例”只使用一些他们的是一个明确的迹象表明,你的类是做太多的事情。
任何类或方法都应该只做“一件事”。所以,正如所说:答案是停在那里,而不是在一个班级中添加更多东西:问问自己你如何才能有意义地将它拆开。