我误解了“可扩展”和“可插入”术语。有人可以帮我解释一下吗?
答案 0 :(得分:2)
可扩展意味着您可以配置模块(或框架组件)以最终执行您想要的操作。
可插拔意味着您可以删除该模块,也许可以替换您自己的模块。该模块将完全在您的控制之下,最终应该按照您的意愿行事。
一个很好的例子:
魔兽地图是可扩展的。您可以创建新地图,但不能 真的去除水砖,你只是避免使用它们。同样,你不能 重新定义元素必须适合文件的位置,也许是为了节省空间。
Web插件是可插拔的。您可以创建一个新的Web插件 不需要从其他插件复制任何代码,也不需要 遵循任何内部格式。你需要关注插件 interface 这将是应用程序之间唯一的通信线路 和你的插件。两个流行的网络插件是Adobe Acrobat PDF阅读器和 Java Applet Runner。
在某种程度上,这些是概念性项目。可以将插件视为扩展点,从而使所有插件扩展和插件系统成为可扩展插件;但是,在编程术语中,可扩展接口往往不如插件接口灵活。
同样,您可能会想到一个扩展点的配置“插入”应用程序;但是,与插件不同,扩展通常不能在应用程序之外使用,它是“扩展”。
答案 1 :(得分:2)
从实用编码器的观点来看:
可扩展 - 获取一些代码类并使用它作为基础构建在此类之上。密封类不能通过继承扩展。但只要原始类中的代码可重用,就可以通过其他方式实现可扩展性。
可插拔 - 也可以是可扩展的。可插拔的东西是能够在某处丢弃某些东西(dll)并使其正常工作的能力。它是通过您的可插拔项目遵守某些规则(实现界面)来实现的。
取决于你如何看待它,定义不同。例如,您的插件可以扩展应用程序。但是从编码的角度来看,可扩展性实际上是以某种方式构建某种东西,以至于您可以在以后使用它并从中获取其他东西。可插拔性是一种设计,在这种设计中,你不知道你的组件是什么,但你知道它们的工作原理并不重要。