Сайт вебмастера

Шаблон «Template method» (Шаблонный метод)

08-11-2019Время чтения ~ 1 мин.PHP/ООП 6020

Основное назначение Template method — выделить из основного класса какие-то операции, которые могут быть выполнены классами-наследниками.

Пример кода я разместил на гитхабе.

Смысл шаблона достаточно простой: есть некий абстрактный класс, который реализует всю необходимую логику. Для тех операций, которые могут меняться, создаются абстрактные методы. Также в классе могут быть базовые и «пустые» методы, которые предполагается переопределять в наследниках.

Метод run() содержит алгоритм выполнения. Понятно, что таких методов может быть несколько. Дальше просто: создаются наследники, которые а) реализуют абстрактные методы и б) переопределяют, если нужно, другие.

Если другими словами, то Шаблонный метод не что иное, как наследование, а не композиция. Такой алгоритм очень часто используется в PHP, например во фреймворках (например при создании контролёра или модели).

Похожие записи