2014-11-22 1 views
0

В надежде на небольшое руководство по принятию решений моделирования для приложения RoR. Я планирую построить. Это будет арендная платформа с несколькими арендаторами. Я предполагаю следующие классы и/или модули, и мой вопрос касается моделирования, композиции и наследования. Я полагаю, следующие классы и или модули:Объектно-ориентированное консультирование по моделированию

  • Products (модуль В ProductLibrary, VendorCatalogue и Распоряжений?)
  • продукта Библиотека (всевозможная аренда вещь, предметы has_many продукта, 1..n с продуктами)
  • Поставщики (1..1 с каталогом поставщиков, 1..n с заказами)
  • Каталог поставщиков (имеется продуктов из объекта «Библиотека продуктов» и индивидуально для каждого «Продавца», 1..1 с поставщиками)
  • Клиенты (заявки 1..n)
  • Заказы (состоящие из Продуктов из каталога поставщиков, 1..1 с клиентом, 1..n с продуктами и п. 1 с поставщиками)
  • Возможно, должен существовать класс учетной записи с общими атрибутами и методами учетной записи, которые оба Поставщики и клиенты унаследовали?

Извините за отсутствие ясности с тем, как я изложил вышеизложенное, я новичок в OO и программировании в целом. Могу ли я иметь какие-либо мысли и советы по моим соображениям ниже. лучшее моделирование указанных объектов:

  • Мои мысли, что продукты должны быть модулем (?), поскольку другие классы имеют продукты, а не «являются продуктами»?
  • Я не уверен, что мне даже нужна библиотека продуктов (это будет просто product.all?)?
  • Поскольку существует несколько продавцов, каждый из которых имеет разные диапазоны продуктов/каталоги, мне нужен объект VendorCatalogue, чтобы содержать уникальную коллекцию объектов всех производителей. Это лучший способ сделать это?
  • Должны ли поставщики и клиенты унаследовать от родительского класса учетных записей, чтобы сохранить СУХОЕ?
  • Будет ли самое разумное место для создания класса продуктов/модуля, продуктов Library (если rqd), затем поставщиков, затем VendorCatalogue, а затем клиентов, а затем ордеров?

Любая помощь по вышеуказанной оценке, спасибо.

ответ

0

Мои мысли, что продукты должны быть модулем (?), Как и другие классы «есть продукты», в отличие от «продукты?

Я бы предпочел сделать продукт AR :: Model. На самом деле это отдельная сущность с ее собственным поведением и состоянием. Это основная модель вашего приложения, если я все понял правильно.

Я не уверен, что мне даже нужна библиотека продуктов (это будет только products.all?)?

Если у вас будет сложная логика поиска продукта, вы должны сделать что-то вроде ProductRepository. Ознакомьтесь с шаблоном репозитория здесь: http://msdn.microsoft.com/en-us/library/ff649690.aspx.

Поскольку существует несколько продавцов, каждый из которых с различным продуктом диапазонов/каталогов, я нужен объект VendorCatalogue содержать каждый из вендоров уникальной коллекции объектов Product. Это лучший способ для сделать это?

Определенно, вы должны сделать этот объект.

Поставщики и клиенты должны унаследовать от родительского класса учетной записи до сохранить СУХОЕ?

Это зависит от вашей логики. Если у клиентов и поставщиков есть несколько учетных записей, с транзакциями, изъятиями и т. Д., Вы можете включить их в оба модуля учетной записи. Но будьте осторожны. Вы должны подумать немного. Если у них есть другая логика, каждый из них должен иметь CustomerAccount или VendorAccount.

бы самое разумное место для начала быть с созданием Продукции класса/модуля, ProductsLibrary (если RQD), то Вендоры, то VendorCatalogue, то клиенты, то заказы?

Я делаю этот заказ достаточно хорошим.

+0

Спасибо Станислав, размышляя, исследуя и узнавая больше о моментах вашего ответа. Например. Не слышали о шаблонах хранилища до сегодняшнего дня;) спасибо за руководство. – jbk

+0

Если бы я помог вам, было бы здорово, если бы вы пометили мой ответ как правильный :) –

+0

BTW, AR :: Модель простая рельсовая активная модель записи, ничего сложного –