-3

以下のクラス間の関連付けの可能性の長所と短所は何なのか疑問に思っています。私はそれが非常に一般的な質問であり、特定のケースのニーズに依存することを知っていますが、一般的に哲学的な問題として違いは何なのか疑問に思っています

1)

class Order
{
    IList<OrderPosition> Positions;
}

class OrderPosition
{

}

2)

class Order
{

}

class OrderPosition
{
    Order Order;
}

双方向の関連付けを作成する 3 番目のオプションもありますが、それはメモリの無駄だと思います。

4

2 に答える 2

1

Order(1)でポジションが複数の s にあること、または同じ中に複数回出現することを妨げるいくつかの外的要因があると仮定しますOrder(これは(2)では発生しないため)(polkduranの回答によると)...

それは完全に状況に依存します。どの操作が最も頻繁に実行されるかを自問してください。これが目的の設計を示します。

Order与えられたすべての位置をすばやく見つける必要がある場合は、(1) を使用します。

Order特定の位置の をすばやく見つける必要がある場合は、(2) を使用します。

Order両方を使用しても、指定された位置のすべての位置と指定された位置のすべての位置をOrderすばやく見つけられるようにしたい多くの現実世界の状況では、絶対にメモリが無駄になりません。

(1) をある種のツリー構造またはハッシュ構造に変更すると、指定された特定の位置Orderをすべての位置から検索するよりも速く見つけることができますOrder(これが設計のコンテキストで意味がある場合)。 .

于 2013-05-06T12:54:04.430 に答える