Ver Mensaje Individual
  #1  
Antiguo 21-11-2005
Jome Jome is offline
Registrado
 
Registrado: nov 2005
Posts: 8
Reputación: 0
Jome Va por buen camino
Listas de objetos: ¿Herencia o Encapsulación?

Hola.

Antes que nada quiero saludar a todos puesto que es mi primer post, así como agradecer de antemano vuestra ayuda.

Vamos al asunto.
Se trata de una simple clase que va a contener una lista de objetos. Para ello me voy a apoyar en la clase TStringList (va a poseer Valores y Objetos asociados).

¿Qué creéis que es más correcto (o elegante)?

Código Delphi [-]
  TMiLista = class
   protected
     FObjetos: TStringList;
   public
     constructor Create;
     destructor Destroy; override;
     function AddObjeto(const Abbrev: string; Objeto: TMiObjeto): Integer;
     function GetObjeto(Abbrev: string): TMiObjeto;
   end;
   
   
   TMiLista = class(TStringList)
   private
     function GetObject(ObjIndex: Integer): TMiObjeto;
     procedure SetObject(ObjIndex: Integer; const Value: TMiObjeto);
   public
     destructor Destroy; override;
     function GetObjeto(Abbrev: string): TMiObjeto;
     property Objects[ObjIndex: Integer]: TMiObjeto read GetObject
       write SetObject;
   end;

Hay que tener en cuenta que, si posible, no quiero dar acceso a la propiedad Objects, es decir, no dar acceso a los objetos de la lista directamente, sino hacerlo sólo a través de los métodos (establecer como una "caja negra").
Por ello, mi preferencia es la primera clase, pero si me decís que no es elegante, o no se suele hacer, pues utilizaré la segunda clase.

Muchas gracias.
Un saludo.

EDITO para modificar modificar y aclarar un poco el título.

Última edición por Jome fecha: 24-11-2005 a las 12:03:44.
Responder Con Cita