|
|
1
2
我假设,因为您提到了版本控制方案,所以我们讨论的是持久类。 我想说您有一个很好的列表,但是(取决于您的ORM引擎),我还倾向于确定哪些值(除了autoincrement i d),定义任何记录的“唯一性”。 我之所以提到这一点,是因为Hibernate对集合有着奇怪的行为,如果您在哈希代码中使用ID,因为它在整个过程中很容易改变。 同样值得注意的是,值得您花时间研究哪些集合是懒惰的或渴望的,特别是对于ToString方法(如果您在脱离持久性上下文时执行ToString,则可能会导致懒惰的inits)。 |
|
|
2
6
如果我知道我要做什么,通常先编写一个测试,然后编写类使其运行。 |
|
|
3
1
这完全取决于对象必须做什么。例如,如果对象是可变的,它不应该实现equals和hashcode,也不应该具有可比性。如果它永远不会被序列化,那么实现可序列化和担心版本控制是没有意义的。如果对象是不可变的,则不需要复制构造函数。 我通常从一个接口开始,该接口定义系统中的其他对象希望新对象做什么。实现该接口将“拉”类的其余部分。 |
|
|
4
1
如果你有很多字段,我会考虑一个构建器——如果不变性很重要的话。 就这一过度杀戮而言,它实际上很大程度上取决于用例。如果这是一个内部对象,在您自己的代码中使用,或者在一些密切的合作者中使用,我会说是的,最明显的是过早地完成所有这些操作会造成过度杀伤力。这使得设计的发展更加困难(想想如果你添加一个字段,你需要改变多少),而且很可能会创建很多无法使用的代码。 另一方面,如果您正在研究一个更大的分布式项目或公共API,我认为这符合基本原理。至少,这个列表上的所有内容都应该考虑,即使最终决定类可以是可变的,例如,至少决策是明智的。 |
|
5
0
完全过度杀伤。应用雅格尼。 设计类来完成客户机代码对它们的要求,也许还需要进行测试。再也没有了。如果你正在写一个图书馆,那么你当然需要更完整一点。即便如此,作为一个规则,在你考虑承诺之前至少要有三个客户。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |