Я работаю над университетским заданием для модуля объектно-ориентированного проектирования. После лингвистического c анализа существительных и глаголов и определения вариантов использования в настоящее время составляется диаграмма классов.
Соответствующие части программы следующие:
Программа используется сотрудниками магазина. Существует список продуктов, которые представляют, что находится в магазине. Каждый продукт имеет уникальные данные, включая ассоциированного поставщика и компанию-поставщика (у которой родительский класс может называться «внешняя компания»).
Должна также быть функциональность для отслеживания заказов (но не для размещения). Требования не включают несколько заказов на один продукт; только один запас за один раз для каждого продукта.
Это заставляет меня думать, что любые детали, связанные с заказом на продукт, могут быть перечислены как атрибуты для этого объекта продукта, а не как атрибуты объекта заказа, который связан с объект продукта. Если бы было несколько заказов на один продукт, я бы определенно составил список заказов в дополнение к списку продуктов, однако на один продукт приходилось только 1.
Проблема заключается в том, что все атрибуты продукта (имя, вес, срок годности, идентификатор, стоимость за единицу, скорость продаж, фотография и т. Д. c) и все атрибуты заказа (предполагаемая дата заказа, сумма заказа). , дата поставки, сумма, причитающаяся поставщику, дата последнего заказа), поскольку атрибуты продукта сделают класс продукта громоздким. Кроме того, разделение их на два класса может создать избыточность. Кроме того, большинство «атрибутов» заказа на самом деле являются результатами вычислений, выполненных с использованием атрибутов продукта, а не «базовых атрибутов» (извинения за неправильную терминологию).
Варианты диаграммы классов показаны ниже. пожалуйста, прости меня за отсутствие деталей, так как это всего лишь макет, чтобы визуализировать то, что в вопросе выше.
Опция 1:
Опция 2:
Любая помощь, по которой (если есть) диаграмма класса, которую нужно выбрать, будет очень полезна, и любая другая информация, которая может прийти в голову при чтении вопроса, также будет оценена .