Что касается Составного шаблона , целью является группировка объектов в древовидную структуру для представления иерархии «часть-целое». В этом примере подчиненных можно рассматривать как «часть», а менеджера - как «целое». Итак, менеджер - это root дерева, а подчиненные - это лист дерева. А составной шаблон позволяет пользователям согласованно использовать отдельные и составные объекты. Кроме того, составной шаблон принадлежит шаблону структуры.
Напротив, шаблон шаблона определяет каркас алгоритма и откладывает некоторые шаги до подклассов. Это позволяет подклассам переопределять определенные шаги алгоритма без изменения его структуры. Основная особенность в том, что абстрактный класс должен быть его суперклассом. Более того, паттерн - это паттерн поведения.
Пример такого паттерна:
public abstract class Game {
abstract void initialize();
...
public final void play(){
initialize();
....
}
}
public class Cricket extends Game {
@Override
void initialize() {
System.out.println("Cricket Game Initialized! Start playing.");
}
.....
.....
}