7

我试图理解这些术语的含义。我举了几个例子,比如:

聚合:Facebook有一个用户

组成: facebook 中的每个用户都有一个会话。

协会:人们使用浏览器

但我对has a使用我的一个例子感到困惑。为什么不能是用户使用facebook 帐户或 Facebook使用会话来验证用户?

就OOP而言这是错误的吗?我在哪里错过了这个概念?

4

3 回答 3

8

使用关系意味着两件事

->两者都可以独立存在

->数据从整个分类器()流向部分分类器(浏览器

关系意味着两件事

-> 部分分类器(会话)的生命周期取决于整个分类器(facebook)的生命周期

-> 数据通常只流向一个方向(即从整个分类器(facebook)到部分分类器(session))。

于 2013-02-12T17:12:59.307 回答
2

代码项目中的这篇文章对主题进行了简洁的解释。

首先,没有一成不变的方式来对域进行建模,有几种方法是针对特定问题的正确建模方法。例如,您的初始示例使用了一个Facebook类,而在您的后续操作中,您现在正在使用一种Facebook Account类型:使用一个或另一个(或两者)会对您的模型产生影响,但不会使其无效。

说,根据代码项目网站,关联关系意味着:

  • 业主:无业主
  • 一生:拥有自己的一生
  • 子对象:子对象都是独立的。

考虑到这一点,我认为 和 之间没有关联关系UserFacebook Account因为它们彼此高度依赖(假设 User 指的是 Facebook 用户),因此组合可能是更好的关系。

我不确定您在Session课堂上指的是什么。如果这是用户连接的时间段,User那么说 Facebook 使用 session 进行身份验证是没有意义的,也许和之间的关联关系Session可以是agregation,因为 User 可以在一天内拥有多个 Session 并且它是他们都是。

于 2013-02-12T17:35:36.907 回答
1

检查这个精确讨论聚合VS组合的维基百科条目

因此,用 Java 术语来说,Facebook 用户有一个名字(组成),而一个 Facebook 用户有一个朋友列表(聚合)

于 2013-02-12T17:05:35.563 回答