1

例如:脚本对象(如字符串、数组)或脚本引擎(eval()、readFile() 等)之间的兼容性层。

4

2 回答 2

3

如果没有更多上下文,我也不得不说接口。考虑到您可以将函数或委托表示为具有单个方法的接口,并且抽象类只是具有可能已经实现的某些方法的接口。

也就是说,这实际上取决于您要完成的工作。接口适用于您拥有大量具有通用接口但实现可能不同的对象的情况。例如,如果您正在为插件设计一个非常简单的回调系统(即:让插件挂钩宿主应用程序中的某些事件),那么委托可能更简单且足以满足您的需求。

还要记住,如果你确实使用接口,你可能需要一些方法让主机实例化实例。最简单的方法是使用某个唯一名称向主机注册一个委托。

抽象类仅在您想使用接口并提供某些事物的默认实现时才有用。在这种情况下,更好的解决方案是使用实际接口,并提供默认实现作为 mixin。

于 2009-04-26T02:16:35.193 回答
0

接口有我的投票权。这样,只要您定义了接口,任何开发人员都可以相当容易地编写兼容的东西,而不必向他们分发太多代码。

于 2009-04-26T01:22:58.630 回答