Вот намерение шаблона наблюдателя на стр. 293.
Определение зависимости один-ко-многим между объектами, чтобы при изменении состояния одного объекта все его зависимые элементы уведомлялись и обновлялись автоматически.
Строго говоря, пример кода не является Обозревателем, потому что отношение один ко многим скорее один к одному.Однако я бы не стал называть это также Стратегией, согласно ее намерению на стр. 315.
Определить семейство алгоритмов, инкапсулировать каждый из них и сделать их взаимозаменяемыми.Стратегия позволяет алгоритму варьироваться независимо от клиентов, которые его используют.
Семантически слушатель не является алгоритмом;т.е. реагирование на событие - это другая цель, нежели выполнение расчетов.Эта цель синтаксически проявляется, когда метод onClick()
равен void
и, следовательно, ведет себя больше как слушатель.
По этой причине я бы назвал пример кода вырожденной формой Observer.Шаблон.Для меня это похоже на попытку Обозревателя, которая не вполне соответствовала требованиям.Я бы не удостоил эту попытку попыткой связать ее с другим шаблоном.