Какой дизайн лучше? - PullRequest
       11

Какой дизайн лучше?

1 голос
/ 09 марта 2009

У меня есть сценарий под рукой, в котором идет обсуждение дизайна. Чтобы разбить его простыми словами, подумайте об иерархии как таковой Компания -----> Клиент ------> Заказы (игнорировать детали того, как заказы имеют продукты и т. д.) если бы мне пришлось выставить API для работы с этим, что было бы лучше.

а)

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

б)

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

Ответы [ 5 ]

8 голосов
/ 09 марта 2009

Я бы пошел с (A), но я был бы склонен изменить ...

Dim comp As New Company
comp.GetInfo(123)

в ...

Dim comp As Company = Company.Get(123)

(поэтому добавьте новый общий метод в класс Company, чтобы вернуть определенный экземпляр Company)

1 голос
/ 09 марта 2009

Выбирая из двух, я бы выбрал A, добавление CustomerHandler кажется слишком сложным: либо Компания, либо Клиент должны знать, как добавить Клиента в Компанию.

1 голос
/ 09 марта 2009

A. Использование идентификатора, когда вы должны использовать объект - плохая идея.

0 голосов
/ 09 марта 2009

A. cust объект должен содержать идентификатор внутри него, а не отдельно от него.

Возможно, вас заинтересует перегрузка Customer.AddCustomer(string, int), которая делает нового клиента с заданным именем и идентификатором, но это зависит от того, как вы храните информацию.

0 голосов
/ 09 марта 2009

Я предпочитаю первый метод, так как он наиболее точен. Вы создаете объект компании и добавляете в него клиента. Имеет смысл.

Второй метод вводит объект "er", который просто делает вещи более сложными для понимания и более процедурными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...