我意识到要完成这种很单纯的插件系统的唯一方法,就是应该从底层构建起依赖于插件模型,并在这个基础上设计应用程序。
整个应用程序是基于一个很小的核心系统。所有功能都是由插入这个微核心系统的一个或多个插件来实现。
在这个微核心系统的内部,一些用来扩展核心功能的基本子系统应该被定义好。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
子系统(在微核心之外的应用程序的模块)和插件定义了一种可扩展树结构(一个实现较大功能插件—模块,可能被设计成为一个节点,这个节点下面又可以插入其他节点)。而可以被扩展的路径(路径是用来从树上寻找一个节点,一个路径表达式对应一个节点,每一个用“/”分割的部分代表不同的层,路径是从root开始寻找的,并定位到目的节点,这很类似于XPATH的方式,也有说是UNIX的方式,反正明白就好)是由构建在微核心系统之上的应用程序来很好定义的。在路径所代表的节点上的插件,可以提供必要的功能。
每一个应用程序的主要模块,会实现关键的功能,并且会被设计成一个新的树结点。