Какой класс должен делать работу?

1

Я строю систему продаж для моей диссертации, и я продолжаю обсуждать себя в своем дизайне, какой класс должен выполнять эту работу?

Итак, из этих 3 классов;

Класс объекта - этот класс является центральным классом для координатора между другими и графическим интерфейсом

Класс продукта - представляет сведения о продукте

Sales Class - представляет собой продажу нескольких предметов

Когда дело доходит до продажи продуктов, мой большой вопрос:

"Какой класс должен рассчитать общую цену". Класс объекта или класс продаж?

Какая передовая практика?

заранее спасибо

  • 1
    Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что он лучше подходит для канала обмена программистами.
  • 0
    Какой класс уже знает обо всех предметах, их количестве, ценах, бонусах и т. Д.? Ответьте, и у вас есть ответ на ваш вопрос.
Показать ещё 1 комментарий
Теги:
architecture
design

3 ответа

0
Лучший ответ

Мой первый импульс состоит в том, чтобы упорядочить эти классы по их ответственности за дизайн Model-View-Controller (потому что вы упомянули об этом GUI и интерфейсный класс).

  • Facility - согласно вашему заявлению, это контроллер, он соединяет GUI (представление) с вашими данными (моделями).
  • Product - это модельный класс, поскольку он содержит данные и бизнес-логику.
  • Sale - этот класс подключен к нескольким Products а несколько Products имеют одну и ту же Sale, потому что продукт можно продавать более одного раза (это предположение), а продажа может включать в себя несколько продуктов. Это также модельный класс.

Поскольку класс Sale представляет несколько продуктов, и вас интересует (например) сумма индивидуальных цен на эти продукты, это будет место для хранения этого метода.

1

если принимать во внимание MVC, модель - это продукт и продажи, контроллер не является объектом и видом не упоминается.

Если это должно быть правильно спроектированное решение, вы добавите сервисный уровень, который будет выполнять фактическую работу.

Таким образом, модель хранит данные, представление показывает данные, контроллер организует данные между моделью и представлением и уровень обслуживания, который будет вести бизнес-логику по данным (резервированию).

Существует также и вариация этого, когда представление имеет определенный класс модели представления, который будет осуществлять сбор данных и сбор данных для представления. но для вашего случая это не имеет значения.

0

Я считаю, что, как правило, Facility или класс менеджера должны всегда действовать просто как буфер между пользователем и другими классами, что заставляет меня сказать, что вы должны поместить общий расчет цены в класс продаж.

Класс продаж - это тот, который, в первую очередь, был разработан для обработки продажи нескольких элементов, то есть должен быть метод, который возвращает стоимость всех сопоставляемых в настоящее время товаров, а затем передает их классу интерфейса для отображения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню