Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 面向对象的哲学概念_C#_.net_Oop - Fatal编程技术网

C# 面向对象的哲学概念

C# 面向对象的哲学概念,c#,.net,oop,C#,.net,Oop,我想知道下面两种可能的类间关联的优缺点是什么。我知道这是一个非常普遍的问题,取决于具体的案例需要,但我想知道,作为哲学问题,一般来说有什么区别 一, 甚至还有第三种方法可以创建双向关联,但我想这是在浪费内存。假设有一些外部因素阻止位置在1中以多个顺序出现或以同一顺序出现多次,因为根据 这完全取决于具体情况——问问自己最常执行的操作是什么,这将指向所需的设计 当您需要快速查找给定订单的所有位置时,请使用1 当您需要快速查找给定位置的顺序时,请使用2 在许多现实世界中,如果您希望能够快速找到给定顺序

我想知道下面两种可能的类间关联的优缺点是什么。我知道这是一个非常普遍的问题,取决于具体的案例需要,但我想知道,作为哲学问题,一般来说有什么区别

一,


甚至还有第三种方法可以创建双向关联,但我想这是在浪费内存。

假设有一些外部因素阻止位置在1中以多个顺序出现或以同一顺序出现多次,因为根据

这完全取决于具体情况——问问自己最常执行的操作是什么,这将指向所需的设计

当您需要快速查找给定订单的所有位置时,请使用1

当您需要快速查找给定位置的顺序时,请使用2

在许多现实世界中,如果您希望能够快速找到给定顺序的所有位置和给定位置的顺序,那么使用这两种方法绝对不会浪费内存

您可能希望将1更改为某种树或散列结构,这样,如果在您的设计环境中这样做有意义的话,您可以比搜索订单的所有位置更快地找到给定订单的特定位置。

1表示一个订单可以有多个OrderPosition,但不能避免在多个订单中找到OrderPosition

2表示OrderPosition只能包含在一个订单中


如果我们谈论OOP,还有其他含义,这完全取决于您的情况。这不是一个讨论网站,请参阅常见问题解答:不总是-在特定情况下-顺序-顺序位置这两种情况对我来说都是相同的我不明白为什么我应该使用一种而不是另一种
class Order
{
    IList<OrderPosition> Positions;
}

class OrderPosition
{

}
class Order
{

}

class OrderPosition
{
    Order Order;
}