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.