框架和插件有什么区别?即哪些因素决定何时使用插件和框架?
最佳答案
框架提供功能,必须编写程序才能使用;插件扩展了其他东西的功能,通常不需要重写现有程序即可使用。您可以同时使用这两者,一个提供基本界面的框架和一个为界面添加功能的插件。
这方面的例子是:
PAM 库是一个框架; PAM 模块是插件。您编辑
/etc/pam.conf
或 /etc/pam.d/*
使用插件,而不是重新编译使用 PAM 库的代码。但是旧的包需要重写以使用 PAM 框架,而不是直接访问各种系统文件。 同样,NSS 由一个框架和一组在该框架内提供功能的插件组成。在这种情况下,大多数东西都不需要重新编译,因为旧框架提供的接口(interface)(
libc
的 getpwent
和类似功能)对于新框架来说已经足够了。 (异常(exception)是依赖影子密码文件的任何东西,或者对于更旧的程序,常规密码文件中的密码。)配置涉及编辑/etc/nsswitch.conf
。而不是修改程序。 与上面类似,SASL 库是一个框架,但身份验证机制是插件。配置主要通过 SASL lib 目录中的文件进行,尽管也有一些程序使用的接口(interface)允许将其嵌入到这些程序自己的配置文件中;同样,在任何一种情况下,都不需要重新编译来添加、更改、启用或禁用机制。
Windows 有类似的框架和插件,但我对 Windows 的了解还不够,无法指出任何好的例子。
无论如何,一般规则是您使用框架为程序提供访问功能的接口(interface),并使用框架内的插件来提供或扩展其功能。
关于macos - 插件和框架的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5508929/