文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>插件式程序开发网上的一些摘要

插件式程序开发网上的一些摘要

时间:2007-10-26  来源:lib

    为什么使用插件式的程序呢?
    我的答案就是他为应用程序的功能扩展
提供的无限的想象空间。一个应用程序,无论你前期做了多少的市场调查,需求分析做的多么完美,你也只是迎合一部分人的期望,更甚,你只迎合了一部分人的一
部分期望,或者一部分人在某一时间的一部分期望。所以当程序发布以后,你依然有机会提供新的功能而不必重新发布程序,人们也可以根据自己的需要来开发新的
功能来满足自己的需求.
   
    那么插件是如何与主程序进行交互的呢?
  • 首先必须有一个契约,主程序要声明我有哪些功能是可以被插件使用的,并且具备什么条件才能成为我的
    插件。
  • 其次,主程序不依赖于插件,也就是说,没有你插件,我也可以很好的运行。
  • 再次,主程序必须有一种策略来获取插件存在的位置。
  • 最后,应用程序可以通过某种方式动态的加载插件。

订立契约:
    契约是应用程序和插件之间进行交互的依据和凭证。应用程序必须声明我有什么样的功能可被插件使用,并且插件必须符合什么条件才能被我使用。反之,插件必须要知道应用程序提供什么样的功能,我才能将自己的功能融入到应用程序的体系中。   
如何使订立契约呢?首先想到的Interface,
其次是抽象类,但是在插件模式中我使用接口,因为我们是在满足应用程序的主要目的的基础上来提供附加的插件功能,就这一点来说,接口更灵活,更容易扩展。
接下来,如何订立契约的内容呢?这就要根据你的业务需求了,为了讲解的方便,我们定义一个最最基本的插件式应用程序的插件契约。我们做一个假定,我们的应
用程序是一个多文档的应用程序,包含一个主菜单栏,一个工具栏,菜单栏可以在程序的上下左右四个方向停靠,另外还有一个状态栏。到后边,如果有必要,我会
扩展这个应用程序,让他本身提供更多的可供插件使用的功能。所以就目前而言,我想实现的功能就是让插件为主程序添加工具条,菜单项并实现一些简单的功能。
    主程序向插件提供服务有两种方式,一种是直接在主程序接口中声明属性或者方法,一种
是将主程序接口声明成一个服务容器。我打算两种方式都用,明确的功能就在接口中直接声明成属性或者方法,另外将应用程序声明成一个服务容器,以方便插入
更多的服务功能,提高程序的可扩展性。
   
动态加载:
服务容器:
管理插件:
通讯机制:
我把根节点比喻成一个服务中心,它汇总了所有可提供的服务,当某个对象要请求服务(GetService)只需要向根结点发送要获得的服务,根结点就可以把服务的对象传递给它。
               
               
               

相关阅读 更多 +
排行榜 更多 +
模拟梦幻人生 v2.0.1 安卓版

模拟梦幻人生 v2.0.1 安卓版

飞行射击 下载
模拟梦幻人生 v2.0.1 安卓版

模拟梦幻人生 v2.0.1 安卓版

飞行射击 下载
模拟梦幻人生 v2.0.1 安卓版

模拟梦幻人生 v2.0.1 安卓版

飞行射击 下载