Давайте начнем с определения структурных и поведенческих паттернов.
Структурные шаблоны: Структурные шаблоны фокусируются на том, как классы и объекты составляются для формирования более крупных структур. Наследование - это механизм, который используют шаблоны структурных классов для создания реализаций или интерфейсов. Структурные шаблоны объектов иллюстрируют способы составления объектов способами, которые предоставляют им новую функциональность.
Поведенческие паттерны: Поведенческие паттерны - это паттерны, которые реализуют алгоритмы и связаны с распределением обязанностей между объектами. Они также описывают шаблоны связи между объектом и классами. Используя поведенческие паттерны, дизайнер может отвести свой фокус от потока управления и сосредоточить свое внимание на том, как объекты взаимосвязаны. Поведенческие шаблоны классов распределяют поведение между классами, используя объектно-ориентированную технику наследования. Образцы поведенческих объектов, с другой стороны, используют композицию объектов для выполнения своих функций.
Если вы поразмышляете над этим, вся предпосылка заключается в том, что это связано с моделированием структуры класса / объекта, перейдите к Структурным паттернам, и если вы имеете дело с изменением поведения, тогда поведенческие паттерны придут вам на помощь.
В случае Прокси, вы просто оборачиваете цель и переадресовываете вызов. В случае State вы фактически используете наследование (как описано в определении выше) и, следовательно, полиморфизм для изменения поведения во время выполнения.
Надеюсь, это поможет.