После прочтения объяснения и конкретного кода Мне все еще интересно, почему это пример шаблона проектирования «Шаблонный метод».
Согласно GoF, цель этого шаблона:
«Определите скелет алгоритма в операции, отложив некоторые шаги на подклассы. Метод шаблона позволяет подклассам переопределять определенные шаги алгоритма без изменения структуры алгоритма».
и имеет двух участников:
AbstractClass:
— определяет абстрактные примитивные операции, которые конкретные подклассы определяют для реализации шагов алгоритма
— Реализует шаблонный метод, определяющий скелет алгоритма. Метод шаблона вызывает примитивные операции, а также операции, определенные в AbstractClass или другом объекте.
ConcreteClass:
реализует примитивные операции для выполнения шагов алгоритма, специфичных для подкласса.
Почему код в «JdbcOperations» считается шаблоном проектирования «Шаблонный метод»?
- Я не вижу никакого «глобального/общего» алгоритма, определенного в супер/абстрактном классе, даже когда я сравниваю его с кодом в аналогичном файле, например «JmsTemplate». '.
- Ни одна из функций, реализованных в конкретных классах, не определена также в суперклассе. Все определенные методы добавляются с помощью интерфейсов, в данном случае интерфейса «JdbcOperations», и ни один из них фактически не переопределяет методы родительского элемента.
Подробнее здесь: https://stackoverflow.com/questions/331 ... gn-pattern