Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Interfaces Generics

  Alt 8. Nov 2012, 14:35
Eine kurze Frage zum Thema.
Wie muss Ich meinen Code ändern damit der "Publisher" Elemente, welche das Interface "ISubscriber" implementieren, aufnimmt?

Delphi-Quellcode:
type
 ISubscriber = interface
    procedure GetNewspaper(Newspaper : TObject);
  end;

  // Die generische Liste soll Elemente, welche das Interface implementieren, verwalten
  TPublisher = class(TList<ISubscriber>)
  public
    procedure AddSubscriber(S: ISubscriber);
    procedure RemoveSubscriber(S: ISubscriber);
    procedure MessageAllSubscriber;
  end;

Erklärung: TList kann Schnittstellen, TObjectList nicht.

Stilistisch würde ich aber keine AddSubscriber / RemoveSubscriber Methoden deklarieren, denn wenn diese eigenen Code enthalten der in der Oberklasse Add/Remove Methode nicht enthalten ist, könnten Klienten der Klasse weiter auf Add/Remove zugreifen (absichtlich oder unabsichtlich) und damit den eigenen Code umgehen.
Michael Justin
habarisoft.com

Geändert von mjustin ( 8. Nov 2012 um 14:38 Uhr)
  Mit Zitat antworten Zitat