Forum: Object-Pascal / Delphi-Language
Delphi
by Stevie,
8. Jun 2014
Es geht darum, dass es sich um eine implizite Annahme handelt, dass man wie auch immer von IFoo an ein IBar kommen kann, was ein Implementierungsdetail ist.
Wenn man sich mal durchliest, wo das ISP seinen Usprung hat dann dürfte einem schnell klar werden, wie gefährlich so Annahmen sein können, wenn es darum geht, entkoppelten Code zu schreiben. Wenn ich mir nämlich in meinem Code der eigtl...
Forum: Object-Pascal / Delphi-Language
Delphi
by Stevie,
7. Jun 2014
In einem solchen Fall würdest du aber ein nicht referenzgezähltes Objekt übergeben und dort auf IWasAuchImmer überprüfen, um dann damit was zu machen und nicht ein bestimmtes Interface. Ich bezeichne solche Objekte mal als Datenobjekte. Sie könnten bestimmte Aspekte über Interfaces zur Verfügung stellen (wobei ich das auch nicht für das Gelbe vom Ei halte, dazu unten mehr).
Ich kann aber auch...
Forum: Object-Pascal / Delphi-Language
Delphi
by Stevie,
7. Jun 2014
Wenn man sich an das SRP und das ISP hält, dann möchte man möglichst schlanke Interfaces. Und die Zusammenführung mehrerer Interfaces zu einem großen wäre wohl ein klarer Verstoß dessen.
Genau genommen ist schon allein das Supports abfragen des einen Interfaces auf das andere ein Code Smell, denn dadurch greift man von hinten rum auf etwas zu, was einem gar nicht übergeben wurde. Wenn ich...
Forum: Object-Pascal / Delphi-Language
Delphi
by Stevie,
20. Nov 2013
Wenn du das weißt, dann solltest du wissen, dass:
a) Supports mehrfach überladen ist, so dass man nicht nur prüfen kann, ob eine Klasse ein Interface implementiert, sondern auch ein Interface auf ein anderes "gecastet" werden kann.
b) Supports nix anderes macht, als letztlich GetInterface bzw GetInterfaceEntry aufzurufen, welches in diesem Fall keinen Eintrag für ein durch Interface...