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