Class Design, какой из них лучше всего подходит для этого? - PullRequest
1 голос
/ 18 января 2011

Я новичок в проектировании архитектуры и мне нужна помощь в этом.

У меня есть два класса, а именно 'Part' и 'Supplier'.У детали будет поставщик.

В моем классе дизайн должен ли я иметь 'int SupplierID' (тип 'int') или 'Supplier Supplier' (тип 'Supplier') в качестве моего свойства в классе детали?

Какой из них лучше?Какие плюсы и минусы у них?

Kinldy предоставит ваш вклад в это.

1 Ответ

1 голос
/ 18 января 2011
Supplier supplier 

Имея в качестве типа поставщика и идентификатор поставщика в качестве свойства поставщика, для меня было бы больше смысла.Первоначальное преимущество заключается в том, что вы можете выполнить базовую проверку идентификатора поставщика.Конечно, вы представляете его как int сейчас, но это может (и, вероятно, изменится) в будущем.Например, вы можете решить представить идентификатор в виде строки и int внутри, но при сообщении о нем вы будете представлять его в виде строки: XYZ1234, где XYZ - это название компании-поставщика (строка), а 1234 - уникальный идентификатор (int) (пример может быть плохо продуманным, но он все равно может измениться каким-то образом) /

Реальное преимущество наличия поставщика как типа связано с тем, что вы сможете использовать Depenancy Injection, чтобы назначить поставщика наЧасть при создании экземпляра части.Таким образом, ваш конструктор для Part должен выглядеть следующим образом:

Part(Supplier supplier)
{
   _supplier = supplier;
}

Теперь ваш класс Part не зависит от изменений в вашем классе Supplier.Т.е. это не зависит от него.

Примечание: Если вы не знакомы с Depenancy Injection, эта статья Мартина Фаулера должна объяснить:

http://martinfowler.com/articles/injection.html

...