除了构造函数重载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) {
  …
}

但是我有一种强烈的感觉,对于这个用例来说,有这么多构造函数可能不是一个好的设计模式。也许有一个更好的解决方案或最佳实践设计模式用于这种场景。我正在查找构建器模式,但不确定这是否正确/更好。有什么建议吗?

回答

我有一个具有多个构造函数的类。每个代表不同的用例。

那么简单的答案是:将每个用例变成它自己独特的类。

有观点认为,你在一个类中的多个不相关的领域,而每个“用例”只使用一些他们的是一个明确的迹象表明,你的类是做太多的事情

任何类或方法都应该只做“一件事”。所以,正如所说:答案是停在那里,而不是在一个班级中添加更多东西:问问自己你如何才能有意义地将它拆开。


以上是除了构造函数重载java之外的最佳实践/设计模式的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>