Каково различие между Составным Шаблоном и Шаблоном "декоратор"?
Обычно они идут рука об руку. Использование композитного паттерна часто приводит к использованию паттерна декоратора.
Композитный паттерн позволяет вам построить иерархическую структуру (например, дерево элементов) таким образом, что внешний код будет рассматривать всю структуру как единое целое. Таким образом, интерфейс для листовой сущности точно такой же, как и для составной сущности. Суть в том, что все элементы в вашей составной структуре имеют одинаковый интерфейс, даже если некоторые из них являются листовыми узлами, а другие - целыми структурами. Пользовательские интерфейсы часто используют этот подход, чтобы обеспечить легкую композитивность.
http://en.wikipedia.org/wiki/Composite_pattern
Паттерн декоратора позволяет сущности полностью содержать другую сущность так, что использование декоратора выглядит идентично содержащейся сущности. Это позволяет декоратору изменять поведение и/или содержание того, что он инкапсулирует, не меняя внешнего вида сущности. Например, вы можете использовать декоратор для добавления вывода логов об использовании содержащегося элемента без изменения поведения содержащегося элемента.
Разница, вероятно, больше в цели, чем в реализации. В некоторых случаях составной узор предпочтительнее подкласса. Например, вы можете добавить функциональные возможности, которые должен иметь класс, добавив к нему экземпляры других классов, а затем предоставив функциональные возможности через интерфейс пересылки.
Декораторы позволяют вам прозрачно добавлять функциональность, обычно единственную возможность, к классу без клиентов экземпляров класса, которым необходимо знать, что там есть декоратор - например, декоратор "login_required" в представлении в Django вызывает исключение, если пользователь не вошел в систему, но в противном случае представление ведет себя так же, как и без декоратора.
В обоих случаях у вас есть один объект, встроенный в другой, но то, что вы пытаетесь достичь, возможно, отличается.