在 C# 中让一个模型由其他模型组成是好的做法吗?

Is it good practice to have a model made up of other models in C#?

在我们的共享代码库中,刚刚加入了一个功能分支,其中包含一个仅由其他模型组成的模型。我只是想知道这是否是值得遵循的好习惯?我可以举一个例子,有一个 Fruit 模型包含 Name, Price, Quantity 等属性,另一个 Stocks 模型包含 ItemId, Amount, Name。共享模型的设置方式如下:

FruitStock
{
  Fruit Fruit {get; set;}
  Stock Stock {get; set;}
}

这对我来说似乎是错误的,并且在两个模型都需要某些东西的情况下,可以进行查找并将值分配给变量。但是,如果我错了,那么我想我今天学到了一些新东西。

根据 class 设计指南,class 应该只有一个目的。我不确定您在多大程度上简化了您的请求,但在这种情况下,将 ItemId 集成到 Fruit.[=19= 中更有意义] 这完全取决于最终目的...如果 Fruit 是每个人都可以访问的东西,而 Stock 仅限于一定数量的用户,那么这也可能是一个合适的设计。
另一种方法是让 FruitStock 实现接口 IFruitIStock