1

假设我做了一个井字游戏,我使用极小极大来玩人类/计算机对手。其他一些人提出了一个新的决策想法,用代码表达。如果我为他创建了某种方式来使用该算法而不是我的库存算法,而不更改我的原始代码,这是否意味着我已经创建了可插入软件(新的搜索例程不是插件)吗?另外,如果我做到了,那么有人可以写一些方法来改变碎片怎么办?那是剥皮还是可插拔或两者兼而有之?

谢谢。

4

1 回答 1

2

我通常区分

  • 松耦合架构
  • 插件/插件架构

区别主要在于基数

假设您在外部库中定义 AI 算法,并为用户提供一种无需重新编译原始应用程序即可替换算法的方法,您就有了一个松散耦合的应用程序。

我已经在收缩包装的企业软件中看到了这一点,您可以在其中更改数据访问层以与 SQL Server 或 Oracle 通信。不过,它是一个或另一个。

另一方面,插件架构是一种架构,其中应用程序可能带有一些开箱即用的默认功能,但它允许用户添加 或多个不同的行为。有时,会有一个额外的 UI 元素列出各种选项;一个例子是 Photoshop 的各种图像处理过滤器插件。我更喜欢术语Add-in而不是Plug-in,正是因为它将目标定义为能够向应用程序添加行为,而不仅仅是替换它。(当然,Plug-in也有类似的信号,但我认为Add-in更明确一些。)

如果您可以更改应用程序的外观,我们通常称其为蒙皮,但您可能会争辩说这只是插件架构的一个特例。

于 2014-03-19T15:17:43.540 回答