【发布时间】:2013-08-11 12:34:36
【问题描述】:
我刚刚启动了一个项目,旨在让我的雇主成为一款管理软件。我有一个琐碎但可能很简单的查询,我似乎找不到任何信息。
在对象之间有 2 种方式“有”关系是谨慎/良好的做法吗?例如,Client 对象“有一个”Site,然后Site“有一个”Client,其中Client 对象是“有”@ 的Client 987654327@?
public class Client {
Site site;
}
public class Site {
Client client;
}
对此有什么不妥(没有双关语)吗?我目前正在为该项目创建一个模型 UML,这一直困扰着我。
【问题讨论】:
-
好问题,这也一直困扰着我。
-
完全正常。想想父母/孩子的关系。有时孩子有必要接触父母,反之亦然。
-
请记住,如果您不小心,可能会遇到数据完整性问题:
bob.site = a; a.client = joe; -
@damo 应该没问题。我将在这个项目上投入大量精力来实现松散耦合,仅仅是因为它的复杂性。
-
中介者设计模式。前面说这会弄乱你的头。 有时,就在关于中介者模式的混乱旁边是一个解决方案,如果你遵循它完全将帮助你使用这两个对象需要个人堆栈跟踪。
标签: java oop object object-oriented-analysis