Позвольте мне объяснить, что я имею в виду:
function hugeAction(...) {
... perform sub-action 1
... perform sub-action 2
... perform sub-action 3
... perform sub-action 4
... perform sub-action 5
}
Все действия выполняются с некоторыми Object
, но могут быть помещены в различные функции.Порядок первых 2-3 методов имеет значение, порядок оставшихся методов - не имеет значения.Если я оставлю весь код в одном месте, я получу огромную и довольно сложную для обслуживания функцию с непростой логикой процесса.
В настоящее время я использую решение с двумя основными действиями в подписчике событий hugeAction(...)
+ для выполнения оставшихся действий в другой части моего приложения, где все подписчики живут .
Пример:
function hugeAction(...) {
... perform action 1
... perform action 2
... dispatch event XXX
}
class SubscriberXXX extends YYY {
function performHugeActionPart3() { ... }
function performHugeActionPart4() { ... }
function performHugeActionPart5() { ... }
}
Чего я боюсь, так это того, что через некоторое время это решение ответит мне ... любые изменения в подписчике или добавленные дополнительные действия приведут меня в ситуацию, когда мне нужно будет запомнить всеструктура системы и то, как hugeAction()
выполняет и обрабатывает один Object
.
Позвольте мне также упомянуть, что все эти действия не связаны с Factory
/ Builder
-шаблонами, этими действиями. help основной Object
переход из состояния A в состояние B (пример: добавить системный комментарий, добавить системную платежную транзакцию, изменить статус проекта, отправить уведомление и т. Д.).