7

これらの用語の意味を理解しようとしています。そして、私は次のようないくつかの例を持ってきました:

集計 : Facebookにはユーザーがいます

構成 : Facebook の各ユーザーにセッションがあります。

関連 : 人々ブラウザを使用します

しかし、私はhas a and uses a examples of mine と混同しています。ユーザーがFacebook アカウントを使用したり、Facebookがセッションを使用してユーザーを認証したりできないのはなぜですか?

OOPに関してそれは間違っていますか?コンセプトがどこに欠けているのですか?

4

3 に答える 3

8

uses a関係は 2 つのことを意味します

→どちらも独立して存在できる

→全体分類子(人)から部分分類子(ブラウザ)へのデータの流れ

has a Relationship は 2 つのことを意味します

-> 部分分類子 (セッション) の存続期間は、分類子全体 ( facebook )の存続期間に依存します。

->通常、データは一方向にのみ流れます (つまり、分類子全体 ( facebook ) から部分分類子 ( session ) へ)。

于 2013-02-12T17:12:59.307 に答える
2

Code Project のこの記事では、サブジェクトについてきちんと説明しています。

まず第一に、ドメインをモデル化するための石で書かれた方法はありません。特定の問題に対する正しいモデリング アプローチである方法がいくつかあります。たとえば、最初の例ではFacebookクラスを使用し、フォローアップではFacebook Accountタイプを使用しています。いずれか (または両方) を使用すると、モデルに影響がありますが、無効にはなりません。

Code Project サイトによると、関連関係は次のことを意味します。

  • 所有者: 所有者なし
  • 人生の時間:自分の人生を持っています
  • 子オブジェクト: 子オブジェクトはすべて独立しています。

Userそれを念頭に置いて、 と の間に関連関係はないと思います。それらは相互に大きく依存しているためです ( UserFacebook Accountが Facebook ユーザーを指すと仮定すると) 。

クラスで何を指しているのかわかりませんSessionユーザーが接続している期間である場合、Facebook が認証にセッションを使用していると言っても意味がありません。ユーザーは 1 日に複数のセッションを持つことができ、その所有者であるため、Userとの間の関連付け関係は集約Sessionになる可能性があります。それらのすべて。

于 2013-02-12T17:35:36.907 に答える
1

アグリゲーション VS コンポジションについて正確に説明しているこのウィキペディアのエントリを確認してください

したがって、Java 用語では、Facebook ユーザーには名前 (構成) があり、Facebook ユーザーには友達のリスト (集約) があります。

于 2013-02-12T17:05:35.563 に答える