Bei Verwendung von COM (Component Object Model), I'veread, dass Schnittstellen unveränderlich sind und dass neue Versionen von Schnittstellen explizit andere Namen haben, anstatt nur das Verhalten einer vorhandenen Schnittstelle zu ändern. Zum Beispiel wäre die neue Version ICollection
ICollection2
oder ICollectionEx
, obwohl letzteres nicht empfohlen wird (völlig verständlich).Wie werden COM "Regeln" durchgesetzt?
Ich sehe, dass es bei dieser Methode eine enorme Menge an Rückwärtskompatibilität auf Kosten der Ästhetik gibt (was im großen Schema recht kleinlich ist). Wird diese unveränderliche Schnittstellenidee durchgesetzt, und wenn ja, wie und gibt es andere Systeme, die diesen Ansatz verfolgen?
Die Regeln werden "durchgesetzt" durch die Tatsache, dass etwas abstürzt und brennt, wenn Sie sie verletzen. Code, der die Rückwärtskompatibilität bricht, ist im Wesentlichen rückwärtskompatibel. –
Mögliches Duplikat von [Warum ist der COM-Schnittstellenvertrag unveränderlich?] (Http://stackoverflow.com/questions/29056322/why-is-the-com-interface-contract-immutable) Die Unveränderlichkeit wird durch Konvention erzwungen. (COM hat kein unendliches Wissen. Es weiß nicht, dass die Schnittstelle, die du heute definierst, eine Modifikation der Schnittstelle ist, die du gestern definiert hast.) –
@IgorTandetnik Fair genug. –