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

Я закончил второй большой рифэкторинг. Теперь стало существенно проще изменять структуру классификации фильмов и правила расчета задолженности и бонуса. Рис 1.16 и 1.17 показывают паттэрн State, работающий с информацией о цене.


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

Рис 1.17 Диаграмма классов после добавления пэттерна State

В начало | предыдущая | следующая