我的平台+插件观

我的平台+插件观

平台+插件技术算是一种古老的技术了,Windows OS为我们提供了大量Win32 API就是所谓的编程接口,我们基于Windows编的程序就是OS的插件,离开它就无法运行。平台插件技术在翻新,随着Eclipse的风靡,这种模式一直不衰,然而思想是陈旧的,这里我谈点自己的看法。

浅释平台插件
什么叫台呢?台,观四方而高者——《说文》。一个四方的高的平台,给你一种支撑。
舞台给演员提供了展示自我的地方,有音响、灯光、帷幕等,而每个演员好比插件,可能是一个歌唱家、相声演员、舞蹈家。演员踏着台阶来到幕后,帷幕拉起,演员进场在灯光和音响下表演,结束后退到幕后,帷幕拉下,然后是另一个演员上场。离开舞台,演员就成了普通人。一个舞台可以成就很多艺人,他们有各自不同的风格,然而他们都是艺术家,不是政客或商人,他们站在舞台上是表演艺术的。
平台插件体系也是如此。平台是用来解决一类问题的基础设施,它提供了解决问题的工具、遵守的法则以及插件体系管理。有了数字运算工具以及运算法则(先加减后乘除),我们可以解决所有的四则运算问题。以前做地理系统中有这样问题,拉动网格中节点。这个问题包含类两个方面,首先拉动会导致数据更新,然后是拉动要遵守规则--节点所有相连线要跟随拖动。这里变可以把这两个基础服务放入平台,移动规则和数据修改。这样用户做一个插件集成到平台里面,拖动网格中的一个节点,按照规则找到所有相连线,然后对这些线进行数据更新。

典型应用平台插件模式

平台插件的优点
1、平台发布后,在平台不动的前提下通过插件可以使功能扩展。试想我们在操作系统上做了多少软件。
2、功能的重用,平台本身是对所解决问题的一个同类项合并过程,提出公因式,这样便提高了模块的复用率。
3、职责清晰,平台提供功能接口,插件只需要按照接口规范实现调用即可,至于平台内部功能的优化只要不涉及接口,都是没有问题的。
4、产品研发周期缩短。平台以及核心业务实现后即可推出产品,扩展功能可以在后续版本以插件方式开发或交由其他二次开发公司开发。
5、基于组件的平台本身支持多种语言二次开发,可以降低二次开发难度,提高开发效率。

平台插件的不足
1、接口的制定比较困难,由于接口的改动会影响很大,所以插件接口的指定很重要。可能由于功能的不断需要导致接口混乱。
2、基础服务功能粒度的难以把握。粒度太细可能导致模块增多难以控制,粒度太粗复用率太低。
3、基于COM做的时候引用计数的维持很可怕,接口查询成千上万,被一个马虎的程序员弄错一次就导致组件无法释放。
(2006.7.5于北京华亭)

你可能感兴趣的:(我的平台+插件观)