0

我想知道为什么这是真的:

向接口添加方法将破坏它的所有实现... ??? ...一旦接口交付,您就没有机会在不破坏使用该接口的代码的情况下更改它。...

在许多论坛讨论中遇到过这些东西,但没有人解释如何..

如果我将任何方法添加到接口(例如 IMyInterface),并且只是将方法的功能添加到实现此接口的类/类,那么它是如何破坏我的代码的?..它很简单!……不是吗?..(向接口添加方法签名并在类中实现它们),.....就像我向某个类添加一个方法以扩展其功能并且我的代码将得到更新。当然,设计问题时类和接口的目的是不同的。

4

1 回答 1

2

如果您同时提供接口和实现,并且代码完全在您的应用程序内部,那么问题主要是理论上的。当您在 dll 中提供接口并且其他人在他们的 dll 中提供实现时,问题就变得真实了。可能发生这种情况的一个例子是使用插件系统或设备驱动程序。

这两个 dll 在程序启动时在运行时链接。如果您在新版本的 dll 中更新了接口,则编译成旧版本实现 dll 的类对该接口不再有效,程序将无法启动。然后人们被锁定在您的旧版本中,直到他们的实现 dll(可能来自不同的供应商)被更新以反映新版本。

于 2012-06-03T13:03:44.377 回答