什么是更好的设计?

时间:2009-03-09 16:03:53

标签: vb.net design-patterns

我手头有一个场景,正在进行一些设计讨论。要用简单的词语来分解,请考虑这样的层次结构 公司----->客户------>命令 (忽略订单如何产品的细节等) 如果我要公开一个API来使用它,那么什么是更好的设计。

A)

Dim comp As New Company
comp.GetInfo(123)
Dim cust As New Customer
cust.Name= "CustomerName"
comp.Add( cust)

b)中

Dim custhand As Customerhandler
Dim cust As New Customer
cust.Name= "CustomerName"
custhand.AddCustomer(cust,123)  ''123 is CompanyID

5 个答案:

答案 0 :(得分:8)

我会选择(A),但我倾向于改变......

Dim comp As New Company
comp.GetInfo(123)

...成

Dim comp As Company = Company.Get(123)

(因此,在Company类中添加一个新的共享方法以返回公司的特定实例)

答案 1 :(得分:1)

一个。在使用对象时使用ID是一个坏主意。

答案 2 :(得分:1)

在两者之间选择,我选择A,添加CustomerHandler似乎过于复杂:公司或客户应该知道如何将客户添加到公司。

答案 3 :(得分:0)

我更喜欢第一种方法,因为它最直接的关键。您可以创建公司对象并向其添加客户。有道理。

第二种方法引入了一个“呃”对象,它使事情变得更难以理解和更具程序性。

答案 4 :(得分:0)

一个。 cust对象应包含其中的ID,而不是与其分开。

您可能会对Customer.AddCustomer(string, int)重载产生兴趣,但是会产生具有给定名称和ID的新客户,但这取决于您存储信息的方式。