插件和框架之间的区别

时间:2011-04-01 03:49:19

标签: macos plugins frameworks

框架和插件有什么区别?哪些因素决定何时使用插件和框架?

此致 迪帕

1 个答案:

答案 0 :(得分:2)

框架提供功能,必须编写程序才能使用;插件扩展了其他功能,通常以不需要重写现有程序的方式使用。您可以使用两者,使用提供基本界面的框架和为界面添加功能的插件。

这方面的例子是:

  • PAM

    PAM库是一个框架; PAM模块是插件。您可以编辑/etc/pam.conf/etc/pam.d/*以使用插件,而不是重新编译使用PAM库的代码。但是需要重新编写较旧的软件包以使用PAM框架,而不是直接访问各种系统文件。

  • NSS

    同样,NSS由一个框架和一组插件组成,这些插件在该框架内提供功能。在这种情况下,大多数事情不需要重新编译,因为旧框架(libc的{​​{1}}和类似函数)提供的接口大部分足以用于新框架。 (例外情况是任何依赖于影子密码文件的东西,或者甚至是旧程序中常规密码文件中的密码。)配置涉及编辑getpwent修改程序。

  • Cyrus SASL

    与上述类似,SASL库是一个框架,但身份验证机制是插件。配置主要由SASL lib目录中的文件组成,尽管某些程序还使用了一个接口,允许它嵌入这些程序自己的配置文件中;再次,在任何一种情况下,它都不需要重新编译来添加,更改,启用或禁用机制。

  • 在Mac OS X上,服务实现为插件;相应的框架内置于标准框架中。

Windows有类似的框架和插件,但我对Windows的了解不足以指出任何好的例子。

在任何情况下,一般规则是您使用框架为程序提供访问功能的接口,并使用框架内的插件来提供或扩展其功能。