Estuve buscando sobre el patrón
Composite y esto fue lo que encontré:
http://www.delphi3000.com/articles/article_3595.asp
En ese artículo tienes un buen ejemplo en
Delphi sobre este patrón.
En si, este patrón dice que permite a cierto objeto tratar objetos individuales y composiciones de objetos de manera uniforme.
Un pequeño ejemplo:
Código Delphi
[-]
TComponentClass = class
protected
procedure DoSomething: virtual;
end;
TCompositeClass = class(TComponentClass)
private
ComponentList: TList;
protected
procedure DoSomething; override;
public
constructor Create;
destructor Destroy; override;
end;
implementation
procedure TComponentClass.DoSomething;
begin
ShowMessage('Componente individual');
end;
constructor TCompositeClass.Create;
begin
ComponentList := TList.Create;
end;
destructor TCompositeClass.Destroy;
begin
ComponentList.Free
end;
procedure TCompositeClass.DoSomething;
var
I: Integer;
begin
for I := 0 to Pred(ComponentList.Count) do
TComponentClass(ComponentList[i]).DoSomething
end;
Espero que con este ejemplo y el artículo que enlacé te quede más claro el patrón
Composite.
Saludos...