Ale}{ писал(а): ↑2017.03.23, 09:44
Сразу вопрос в ЛОБ - сейчас у вас 3 Состояния (или статуса все-таки?) - и каждый описан в отдельном классе - а что будет если их станет 10, 15?
их и есть 15 штук примерно.
Переход в другое состояние - это вообще что - просто смена одного поля - или что-то еще?
Что то еще. Для каждого состояния своя собственная проверка на возможность перейти на след. состояние. Плюс поведение самих состояний может отличаться
Так вот логика такая - само действие Смена статуса - может быть какое угодно в том плане. что На согласовании-> К выполнению->К отгрузке (товар есть на складе). ТО есть мы перепрыгнули - и это нормально.
А вот при выполнения какого либо действия с заказом - как раз и проверятся статус . К примеру - Мы не можем создать заказы поставщикам на основании заказ клиента, если он находится в статусе На согласовании. А вот сама смена статуса На согласовании->К выполнению -и дает основание менеджеру по закупу приступить к обработке заказа и сделать заказ(ы) поставщику(ам).
Да, примерно то. Действия с заказом зависят от статуса(состояния).
То есть по сути можно сказать -что статус - это стадия, на которой находиться объект. И на каждой стадии меняется ответственное лицо которое производит необходимые действия и меняет статус - получается конвейер
конвейер - это паттерн Chain of Responsibility?
У меня статусы могут менять не только в одном направлении. Заказ может вернуться и назад. Например, по вашим стадиям, заказ на стадии "К выполнению", но мы вспомнили, что нужно согласовать еще что то(забыли) - и возвращаем назад, делаем что надо и двигаемся дальше.