插件(Plugin)模式向用户提供了一种扩展程序的接口,用户可以在程序本体之外,按照指定接口编写插件来为程序增加功能。
可能实际开发中不太会运用到插件模式,但是它确实我们经常会使用到的一种模式。例如CocosBuilder和Unity3D都不同程度的提供了插件功能,用户可以自己编写插件来完善或者定制编辑器。此外,我们也可以编写Visual Studio、XCode或Eclipse的插件来扩展这些IDE。
插件模式中会有一个管理器用来管理这些插件,而如何调用插件的方法?这里我们就需要制定一个接口,插件必须实现接口方法,而管理器则调用这些方法。
插件抽象类:
public abstract class Plugin{
public virtual void DoSomeThing ()
{
}
}
如何知道插件的类型并实例化它们呢?我们可以使用反射(参考