Применение паттерна State было очень удачной идеей. В чем же его ценность?
Полезность подобных изменений станет очевидна, когда вам понадобится изменить
расчёт цены, добавить новые категории или добавить новые расчёты, зависящие от
расчёта цены. Теперь будет существенно легче вносить изменения. Остальная
часть приложения не знает ничего о паттерне State. Это не очень существенно
для небольшой системы, которую мы рассматриваем. В более сложных приложениях
со сложными зависимостями методов расчёта цены разница будет уже весьма
ощутима. Все изменения были проделаны небольшими шагами. Может показаться
медленным работать подобным образом, но из-за того, что я ни разу не запускал
отладчик, процесс на самом деле идет очень быстро. У меня заняло гораздо
больше времени написать эту часть книги, чем вносить изменения в код.
Я закончил второй большой рефакторинг. Теперь стало существенно проще изменять структуру классификации
фильмов и правила расчета задолженности и бонуса. Рис 1.16 и 1.17 показывают паттэрн State,
работающий с информацией о цене.

Рис 1.16 Sequence-диаграмма взаимодействия паттерна State

Рис 1.17 Диаграмма классов после добавления паттерна State
В начало |
предыдущая |
следующая