Я хотел бы лучше понять, как структурировать методы в простой программе управления запасами, которая имеет наследование.Понимание «поведения» и размещения методов
Контекст: продуктам в розничной среде присваивается место, когда он не находится на торговой площадке. Подумайте о месте, разделенном книжные полки с рядами и колоннами, как это:
Действие программа должна выполнить это добавление продукта в папку. Например, присвоение красной звезды местоположению 10/2/3 на графике выше. Мой вопрос в том, является ли это «поведением/методом» рабочего, корзины или продукта? Когда вы думаете об исполнении, как вы решаете, какой класс? Рабочий может положить продукт ... продукт может быть размещен ... и корзина может получить. Похоже, что он может быть реализован во всех 3.
Мой разум хочет сказать мне, что я должен реализовать это на уровне бункера, поскольку в конечном итоге бен должен быть ответственным за то, что помещается в него. Например, когда он получает запрос на хранение товара, он уверен, что он не хранит ненадлежащий продукт или не продукт. Получите, что я имею в виду?
Как насчет аргумента, согласно которому продукт может нести ответственность за проверку себя, чтобы убедиться в его правильности и даже у работника, обеспечивающего его надлежащий продукт? Что-то подсказывает мне, что, возможно, должна быть супер форма проверки, а затем каждая из них реализует свою собственную версию?
Возможно, я не думаю об этом правильно. Как вы думаете об этом? Могу ли я его упростить? При упрощении? Существуют ли правила для такого рода вещей или наилучшей практики?
Я не понимаю, что наследование имеет отношение к вашему вопросу. Почему вы считаете, что важно это назвать? Я понимаю, почему вы вызвали поведение. Я чувствую, что вы спрашиваете, какие обязанности должны иметь каждый класс. Это верно? –
Это, вероятно, не стоит для этого простого проекта, но другой подход рассматривает отношения как график. – chrylis
Да, я думаю, что наследование не имеет отношения к моему вопросу. Я спрашиваю об обязанностях.Я исправлю это. – KiloJKilo