|
1
2
您将类耦合得太紧,并且混合了值和引用。您应该考虑检查一个类的引用相等性,或者让它们知道彼此(通过提供
|
|
|
2
1
如果可以重新设计类结构以删除双向关联,并减少与实现相关的问题数量,那么这是首选解决方案。 如果这种重新设计不可能,或者引入了相等或更大的实现问题,那么一种可能的解决方案是使用专用的Equals方法,由双向关联中涉及的类的Equals方法调用。正如Mehrdad所说,这不应该是一个太大的问题,因为需求明确要求这种耦合,所以您不能通过这样做来引入一种耦合。 这是一个实现,它使专门的方法只检查它们自己的字段。与让每个类对另一个类的每个属性进行比较相比,这减少了维护问题。
输出
|
|
|
3
0
我认为最好的解决方案是将Address类分为两部分 那么在Person类中比较核心地址信息就相当简单了,而无需创建SO。 是的,这确实在您的代码中创建了一点耦合,因为人们现在对OccuppiedAddress如何工作有了一点内在的了解。但是这些类已经有了紧密的耦合,所以实际上您并没有使问题变得更糟。
|
|
|
4
-1
|
|
|
5
-1
我会说,不要叫‘this.Resident.Equals(other.Resident));’ 不止一个人可以住在一个地址,因此检查住户是错误的。一个地址就是一个地址,不管谁住在那里! 在不知道你的领域的情况下,很难证实这一点,但基于他们孩子的关系来定义父母之间的平等似乎有点难闻! 你的父母真的没有办法在不检查孩子的情况下确定自己的身份吗?你的孩子是否真的有一个独一无二的ID,或者他们真的是由父母及其与兄弟姐妹的关系定义的?
|
|
|
synthax · 具有容差级别的双精度哈希方法 8 年前 |
|
|
Relaxsingh · 附加导师程序无法正常工作***阅读说明*** 8 年前 |
|
|
user8589267 · 我的equals方法有什么问题? 8 年前 |
|
|
James W. · 带有通配符的java黑名单 8 年前 |