2009-01-12 9 views

Respuesta

7

Una vez que haya leído cosas en la web, probablemente deba buscar en el código de otros programadores para ver cómo (y por qué) utilizaron las interfaces en código real.

Por ejemplo, en el Subversion repository of the dUnit SourceForge site encontrará el archivo XPObserver.pas, que implementa el patrón Observer para Delphi, utilizando interfaces. Este código es muy interesante, ya que generalmente en este patrón, los objetos observados mantienen una lista de observadores, y los observadores mantienen una referencia al objeto (s) que observan. Una implementación ingenua usando interfaces crearía referencias circulares, las interfaces mantendrían sus recuentos de referencia llegando a 0, y esto daría como resultado pérdidas de memoria. El código en XPObserver.pas muestra cómo puede usar el encasillado para resolver este problema.

IMO la mayoría de los archivos XP * .pas merece una mirada más de cerca. Por ejemplo, XPInterfacedObject.pas contiene una explicación de por qué las interfaces agregadas deben usar un contador de referencia común, y presenta una solución alternativa a TAggregatedObject y TContainedObject tal como se implementa en el VCL.

5

No es un video, pero this explica los conceptos básicos.

+0

En mi humilde opinión esta es una mala introducción: en el código de ejemplo proporcionado, la interfaz ni siquiera se utiliza. El punto total de las interfaces sería mucho más obvio si momumsBike y dadsCar fueran ambos de tipo IRecyclable en TForm1.FormCreate(). – mghie

2

Dado que COM usa interfaces this online course es también una introducción a las interfaces.

Cuestiones relacionadas