Слуга () — шаблон проєктування, який дозволяє визначити спільний функціонал для різних ієрархій класів.

Реалізація

Нехай, необхідно реалізувати функціональність, яка спільна для різної ієрархії класів, наприклад, рух у просторі для геометричних фігур та тварин. Для того, щоб не дублювати код його можна винести у функцію, спільний клас (для мов що дозволяють множинне успадкування), у метод інтерфейсу (для мов, що дозволяють реалізацію інтерфейсу), метод розширення інтерфейсу, тощо.

Див. також Множинне успадкування Шаблонний метод (шаблон проєктування)

Джерела Visitor vs Servant vs Command patterns