4

我误解了“可扩展”和“可插入”术语。谁能为我解释一下?

4

2 回答 2

3

从实用编码器的角度来看:

可扩展 - 获取一些代码类并使用它作为基础在此类之上构建。密封类不能通过继承进行扩展。但是,只要原始类中的代码是可重用的,就可以通过其他方式实现可扩展性。

Pluggable - 也可以是可扩展的。使事物可插入的原因是能够将某些东西(dll)放到某处并让该东西工作。它是通过您的可插入项目遵守某些规则(实现接口)来实现的。

看你怎么看,定义不一样。例如,您的插件可以扩展应用程序。但是从编码的角度来看,可扩展性实际上就是以这样一种方式构建某些东西,以便您以后可以使用它并从中制作出其他东西。可插拔性是一种设计,您不知道组件是什么,但无论它们是什么,您都知道它们将如何工作。

于 2013-08-26T17:41:31.293 回答
2

可扩展意味着您可以配置模块(或框架组件)以最终执行您想要的操作。

Pluggable 意味着您可以删除模块,也许可以替换为您自己的。该模块将完全在你的控制之下,并且最终应该做你想做的事。

一个很好的例子:

魔兽地图是可扩展的。您可以创建新地图,但不能真正移除水砖,您只是避免使用它们。同样,您不能重新定义元素必须适合文件的位置,也许是为了节省空间。

Web 插件是可插拔的。您可以创建一个新的网络插件,但您不需要从另一个插件复制任何代码,也不需要遵循任何内部格式。您确实需要遵循插件 界面,这将是应用程序和插件之间唯一的通信线路。两个流行的 Web 插件是 Adob​​e Acrobat PDF 阅读器和 Java Applet Runner。

在某种程度上,这些是概念性项目。可以将插件视为扩展点,从而使所有插件扩展和插件系统成为可扩展的;然而,在编程术语中,可扩展接口往往不如插件接口灵活。

同样,您可能会考虑将扩展点配置为“插入”应用程序;但是,与插件不同,扩展通常不能在应用程序之外使用,它是“扩展”。

于 2013-08-26T01:58:03.403 回答