有几个主题与此类似,但我找不到一个有足够答案的主题。
我想知道 Java 中构造函数重载的最佳实践是什么。我已经对这个问题有了自己的想法,但我想听听更多的建议。
我指的是简单类中的构造函数重载和继承已经重载的类时的构造函数重载(意味着基类具有重载的构造函数)。
谢谢 :)
原文由 Eyal Roth 发布,翻译遵循 CC BY-SA 4.0 许可协议
有几个主题与此类似,但我找不到一个有足够答案的主题。
我想知道 Java 中构造函数重载的最佳实践是什么。我已经对这个问题有了自己的想法,但我想听听更多的建议。
我指的是简单类中的构造函数重载和继承已经重载的类时的构造函数重载(意味着基类具有重载的构造函数)。
谢谢 :)
原文由 Eyal Roth 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
虽然没有“官方指南”,但我遵循 KISS and DRY 原则。使重载的构造函数尽可能简单,最简单的方法是它们只调用 this(…)。这样你只需要检查和处理参数一次,而且只需要一次。
从单元测试的角度来看,测试该类将变得很容易,因为您可以将资源放入其中。如果班级有很多资源(或一些 OO-geeks 称之为合作者),请考虑以下两件事之一:
做一个参数类
Simple中的构造函数只需要拆分
SimpleParams
参数:…或制作
SimpleParams
一个属性:做一个工厂类
制作一个为您初始化资源的工厂类,如果初始化资源有点困难,这是有利的:
然后构造函数以与参数类相同的方式完成:
将两者结合起来
是的……你可以混合搭配两种方式,具体取决于当时对你来说更容易的方式。考虑到
Simple
类,参数类和简单工厂类几乎是同一回事,它们的使用方式相同。