Книга «Head First. Паттерны проектирования. 2-е издание»

В этой книге рассказано, какие паттерны действительно важны, когда и при каких условиях ими необходимо пользоваться, как применить их в ваших проектах и на каких принципах объектно-ориентированного проектирования они построены. Присоединяйтесь к сотням тысяч разработчиков, которые повысили свою квалификацию объектно-ориентированного проектирования благодаря книге «Head First. Паттерны проектирования». Если вы уже читали книги из серии Head First, то знаете, что вас ждет визуально насыщенный формат, разработанный с учетом особенностей работы мозга. В книге «Head First. Паттерны проектирования» принципы и паттерны проектирования представлены так, чтобы вы не заснули, читая книгу, научились решать реальные задачи проектирования программных продуктов и общаться на языке паттернов с другими участниками вашей команды.

Перехватчики в паттерне Шаблонный Метод

«Перехватчиком» называется метод, объявленный абстрактным классом, но имеющий пустую
реализацию (или реализацию по умолчанию). Он дает возможность субклассу «подключаться» к алгоритму в разных точках. Впрочем, субкласс также может проигнорировать имеющийся перехватчик.

Рассмотрим пример возможного применения перехватчиков (другие примеры будут описаны
позднее):

Использование перехватчиков

Чтобы использовать метод-перехватчик, мы переопределяем его в субклассе. В данном случае перехватчик управляет выполнением класса CaffeineBeverage определенной части алгоритма, а именно добавками к напитку.

Как узнать, нужно ли класть клиенту в кофе сахар/молоко? Да просто спросить!

Проверяем, как работает код

Вода закипает… Следующая тестовая программа приготовит горячий чай и кофе.

И знаете что? Мы с вами согласимся. Но признайте: до того, как вам пришла в голову подобная мысль, это был классный пример использования перехватчиков для условного управления выполнением алго ритма в абстрактном классе. Верно?

Несомненно, вы сможете придумать много других, более реалистичных сценариев использования шаблонных методов и перехватчиков в своем коде.

Источник



Leave A Reply

Your email address will not be published.