【发布时间】:2011-01-18 21:32:31
【问题描述】:
我是架构设计的新手,需要一些帮助。
我有两个班级,即“零件”和“供应商”。零件会有供应商。
在我的班级设计中,我应该将“int SupplierID”(类型为“int”)或“Supplier supplier”(类型为“Supplier”)作为我在 Part 类中的属性吗?
哪个更好?它们的优缺点是什么?
Kinldy 对此提供您的意见。
【问题讨论】:
标签: class-design
我是架构设计的新手,需要一些帮助。
我有两个班级,即“零件”和“供应商”。零件会有供应商。
在我的班级设计中,我应该将“int SupplierID”(类型为“int”)或“Supplier supplier”(类型为“Supplier”)作为我在 Part 类中的属性吗?
哪个更好?它们的优缺点是什么?
Kinldy 对此提供您的意见。
【问题讨论】:
标签: class-design
Supplier supplier
将 Supplier 作为类型并将 SupplierID 作为 Supplier 的属性对我来说更有意义。最初的好处是您可以对供应商 ID 进行一些基本验证。当然,您现在将其表示为 int ,但这可能(并且可能会)在未来发生变化。例如,您可能决定在内部将 ID 表示为字符串和 int,但在报告它时,您会将其表示为字符串:XYZ1234,其中 XYZ 是供应商公司名称(字符串),1234 是唯一 ID (int) (可能是人为设计的不好的例子,但它仍然可能会以某种方式改变)/
将 Supplier 作为类型的真正优势在于,当您创建 Part 的实例时,您将能够使用 Dependancy Injection 将 Supplier 分配给 Part。因此,您的 Part 构造函数应如下所示:
Part(Supplier supplier)
{
_supplier = supplier;
}
现在您的 Part 类不依赖于 Supplier 类的更改。 IE。它不依赖于它。
注意:如果您不熟悉依赖注入,Martin Fowler 的这篇文章应该解释一下:
【讨论】: