I'vereadはCOM(Component Object Model)を使用する場合、インターフェイスは不変であり、既存のインターフェイスの動作を変更するのではなく、新しいバージョンのインターフェイスが明示的に異なる名前を持つこと。たとえば、ICollection
の新しいバージョンはICollection2
またはICollectionEx
ですが、後者はお勧めできません(完全に理解できます)。COM "ルール"はどのように強制されますか?
私は、このアプローチでは、後方互換性のために、美観を犠牲にして巨額の価値があることを知っています。もしそうならば、このアプローチをとる他のシステムはいかにありますか?
ルールは、違反したときに何かがクラッシュしたり燃え尽きる可能性があるという事実によって「強制」されます。後方互換性を損なうコードは、本質的に後方互換性がありません。 –
[COMインターフェイスの契約が不変なのはなぜですか?](http://stackoverflow.com/questions/29056322/why-is-the-com-interface-contract-immutable)不変性は慣例によって強制されます。 (COMは無限の知識を持っていませんが、今日定義しているインターフェースは昨日定義したインターフェースの変更であることはわかりません) –
@IgorTandetnik十分に公正です。 –