平台 + 插件思想简述

插件是一种遵循一定规范的应用程序接口编写出来的程序。 插件的本质在于不修改程序主体(平台)的情况下对软件功能进行扩展与加强,当插件的接口公开后,任何公司或个人都可以制作自己的插件来解决一些操作上的不便或增加新的功能,也就是实现真正意义上的“即插即用”软件开发。平台+插件软件结构是将一个待开发的目标软件分为两部分,一部分为程序的主体或主框架,可定义为平台,另一部分为功能扩展或补充模块,可定义为插件。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

典型的平台插件模式:

平台 + 插件思想简述

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="图片_x0020_4" style="VISIBILITY: visible; WIDTH: 385.5pt; HEIGHT: 282pt; mso-wrap-style: square" alt="平台+插件.jpg" type="#_x0000_t75" o:spid="_x0000_i1025"><imagedata o:title="平台+插件" src="file:///C:%5CDOCUME~1%5Cmfsoft%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image001.jpg"></imagedata></shape>

为了实现平台+插件结构的软件设计需要定义两个标准接口,一个为由平台所实现的平台扩展接口,一个为插件所实现的插件接口。这里需要说明的是:平台扩展接口完全由平台实现,插件只是调用和使用,插件接口完全由插件实现,平台也只是调用和使用。平台扩展接口实现插件向平台方向的单向通信,插件通过平台扩展接口可获取主框架的各种资源和数据,可包括各种系统句柄,程序内部数据以及内存分配等。插件接口为平台向插件方向的单向通信,平台通过插件接口调用插件所实现的功能,读取插件处理数据等。

平台插件处理功能包括插件注册、管理和调用,以及平台扩展接口的功能实现。插件注册为按照某种机制首先在系统中搜索已安装插件,之后将搜索到的插件注册到平台上,并在平台上生成相应的调用机制,这包括菜单选项、工具栏、内部调用等。插件管理完成插件与平台的协调,为各插件在平台上生成管理信息以及进行插件的状态跟踪。插件调用为调用各插件所实现的功能。平台插件处理功能实现的另一部分功能为平台扩展接口的具体实现。

平台+插件软件设计步骤包括:

1 确定平台基本功能和插件要完成系列化功能或扩展功能;

2 定义平台扩展接口和插件接口;

3 完成平台设计,主要是平台插件处理功能;

4 向插件开发者提供主平台程序(执行代码),公布平台扩展接口和插件要实现的接口,可能包括开发用的SDK

5 插件开发者按要求开发插件,实现插件接口,开发者可使用提供的主平台程序测试插件;

6 主平台设计者继续完成主平台的内核功能,并可随时公布新增加主平台扩展接口和插件接口;

7 实现4-6步骤的良性循环,整个软件系统不断向前进化。

平台+插件软件设计的优点:

1 实现真正意义上的软件组件的“即插即用”;

2 在二进制级上集成软件,减少大量的软件重新编译与发布麻烦与时间;

3 能够很好实现软件模块的分工开发,能够大量吸取他人的优长;

4 可较好实现代码隐藏,保护知识产权。

你可能感兴趣的:(设计模式,软件测试,ext,F#,Office)