В контексте шаблона проектирования состояние. Каковы плюсы и минусы встраивания StateContext
в качестве дополнительного аргумента метода в State
?
Чтобы было понятнее:
public void handle(Object obj);
vs. public void handle(StateContext context, Object obj);
Рефакторинг контекста в список параметров вместо сохранения его в качестве члена класса увеличил бы низкую связанность и расширил бы возможности повторного использования объекта. В то же время наличие контекста в качестве члена уменьшит размер списка параметров, а также выиграет от высокой связности.
Но наличие несвязанного контекста вводит новый класс ошибок, где могут возникать несоответствия глобального состояния при использовании нескольких экземпляров контекста.
Я начал думать об этой проблеме, когда думал о чистом способе переключения состояний.