平台+插件软件设计基本思想
插件的本质在于不修改程序主体(平台)的情况下对软件功能进行扩展与加强,当插件的接口公开后,任何公司或个人都可以制作自己的插件来解决一些操作上的不便或增加新的功能,也就是实现真正意义上的“即插即用”软件开发。平台+插件软件结构是将一个待开发的目标软件分为两部分,一部分为程序的主体或主框架,可定义为平台,另一部分为功能扩展或补充模块,可定义为插件。
在进行软件开发之前,是否采用平台+插件结构进行软件开发,还要依据具体的软件需求情况进行确定,但一般来讲,使用平台+插件结构进行软件设计会给所开发软件增加新的生命力。当确定平台+插件的软件结构之后,就要分析哪些部分功能由主体完成,即平台的基本功能,哪些部分功能由插件完成,即需要扩展的插件功能。平台所完成的功能应为一个软件系统的核心和基础,这些基本功能即可为用户使用,也可为插件使用,就是又可以把平台基本功能分为两个部分,内核功能和插件处理功能。平台的内核功能是整个软件的重要功能,一个软件的大部分功能因由内核功能完成。平台的插件处理功能用于扩展平台和管理插件,为插件操纵平台和与插件通信提供标准平台扩展接口。插件所完成的功能是对平台功能的扩展与补充,一般插件完成系列化功能,例如:PHOTOSHOP的滤镜插件完成对图形的特殊效果处理,这些功能都有一些共性,可以进行集中管理,并且是可以定义出标准的插件接口。
为了实现平台+插件结构的软件设计需要定义两个标准接口,一个为由平台所实现的平台扩展接口,一个为插件所实现的插件接口。这里需要说明的是:平台扩展接口完全由平台实现,插件只是调用和使用,插件接口完全由插件实现,平台也只是调用和使用。平台扩展接口实现插件向平台方向的单向通信,插件通过平台扩展接口可获取主框架的各种资源和数据,可包括各种系统句柄,程序内部数据以及内存分配等。插件接口为平台向插件方向的单向通信,平台通过插件接口调用插件所实现的功能,读取插件处理数据等。
平台插件处理功能包括插件注册、管理和调用,以及平台扩展接口的功能实现。插件注册为按照某种机制首先在系统中搜索已安装插件,之后将搜索到的插件注册到平台上,并在平台上生成相应的调用机制,这包括菜单选项、工具栏、内部调用等。插件管理完成插件与平台的协调,为各插件在平台上生成管理信息以及进行插件的状态跟踪。插件调用为调用各插件所实现的功能。平台插件处理功能实现的另一部分功能为平台扩展接口的具体实现。
平台+插件软件设计步骤包括:
1、 确定平台基本功能和插件要完成系列化功能或扩展功能;
2、 定义平台扩展接口和插件接口;
3、 完成平台设计,主要是平台插件处理功能;
4、 向插件开发者提供主平台程序(执行代码),公布平台扩展接口和插件要实现的接口,可能包括开发用的SDK;
5、 插件开发者按要求开发插件,实现插件接口,开发者可使用提供的主平台程序测试插件;
6、 主平台设计者继续完成主平台的内核功能,并可随时公布新增加主平台扩展接口和插件接口;
7、 实现4-6步骤的良性循环,整个软件系统不断向前进化。
平台+插件软件设计的优点:
1、 实现真正意义上的软件组件的“即插即用”;
2、 在二进制级上集成软件,减少大量的软件重新编译与发布麻烦与时间;
3、 能够很好实现软件模块的分工开发,能够大量吸取他人的优长;
4、 可较好实现代码隐藏,保护知识产权。
- 浏览: 399912 次
文章分类
- 全部博客 (327)
- Android (114)
- Java (13)
- Java基础 (14)
- Glib (2)
- linux (15)
- extjs (5)
- eclipse (2)
- Asterisk (56)
- MYSQL (6)
- 数据库 (9)
- PHP (7)
- C# (18)
- 杂谈~~ (1)
- web开发前端 (3)
- 网络编程 (2)
- Opensips (2)
- voip (3)
- debian (7)
- openfire (15)
- wordpress (1)
- 版本控制 (1)
- Android 线程服务广播 (1)
- SRTP (2)
- 单片机及ARM等 (3)
- 基础知识 (5)
- asp.net (2)
- 单片机 (1)
- 设计模式及架构 (1)
- 安全 (1)
- Cubieboard 草莓树莓各类派 Android开发板 (1)
- J2EE (2)
- BootStrap (3)
- BootStrap web前端开发 (1)
- web前端开发 (4)
- object-c (1)
- openwrt (8)
- 智能家居 (4)
- Node.js (4)
最新评论
-
xiaoxiecomeon:
你这个程序一存在线程的时间片相互抢占的问题,运行时间长了很可能 ...
Runnable 和 Thread -
dotjar:
我觉得话应该这么说:引用TestThread tt = new ...
Runnable 和 Thread -
dagf113225:
调用TelephonyManager的隐藏API是先参考Fra ...
Android提高第十四篇之探秘TelephonyManager
发表评论
-
C# 全局异常处理
2015-10-20 13:36 1070咳,今天给大家带来一个关于C#中的异常处理,很多朋友在C#中 ... -
C#如何判断操作系统位数是32位还是64位
2014-11-07 10:50 1329方法一:对于C#来说,调用WMI是一种简单易行的方式。我们 ... -
UML类图几种关系的总结
2014-11-03 09:34 490在UML类图中,常见的有以下几种关系: 泛化(Genera ... -
Assembly类
2014-10-30 10:25 588System.Reflection.Assembly类是一个 ... -
由云台协议DLL浅谈插件程序的编写(下)
2014-10-28 13:47 421由云台协议DLL浅谈插件程序的编写(下)【原创】 1.创建 ... -
由云台协议DLL浅谈插件程序的编写(上)
2014-10-28 13:47 521前言:本文通过一个简单的工程描述了一种插件设计的思想。复杂设 ... -
插件式设计的架构模型与实例
2014-10-28 13:38 321插件式设计近年来非常流行,其中eclipse起了推波助澜的作 ... -
C++插件架构浅谈与初步实现
2014-10-28 13:36 653一、插件架构初步介绍 ... -
什么时候用抽象类,什么时候用接口
2014-09-27 14:18 545共同点是他们都可以实现多态。 不同点在于设计抽象类和接口的目 ... -
使用 Override 和 New 关键字进行版本控制(C# 编程指南)
2014-09-24 14:10 486使用 Override 和 New 关键字进行版本控制(C# ... -
override(C# 参考)
2014-09-24 14:08 361override(C# 参考) Visual Stud ... -
接口可以实例化
2014-09-24 13:53 998接口可以实例化 ... -
C#的WinForm中如何让窗体大小不能改变
2014-08-20 14:20 1074设置FormBorderStyle属性为FixDialog即可 ... -
HOW TO:使用 Visual C# .NET 从文件中读取 XML
2012-03-06 20:52 1179本文描述如何使用 XmlTe ... -
C#XML操作
2012-03-06 20:52 773using System.Xml; namespace ... -
c# http编程
2012-03-06 20:52 941c# http编程 2010-06-18 11:10 ... -
Visual C# HTTP协议开发
2012-03-06 20:53 1003Visual C# HTTP协议开发 HTTP协议简 ...
相关推荐
2.5设计的基本思想 8 2.6性能需求 9 2.6.1系统的安全性 9 2.6.2数据的完整性 9 2.7界面需求 9 第三章 系统分析与设计 11 3.1数据库的分析与设计 11 3.1.1数据库的概念结构设计 11 3.1.2数据库的逻辑结构设计 13 ...
程序开发软件: Visual Studio 2010以上 数据库:sqlserver2005以上,8个表 基于MVC思想和三层模式开发!根据自行车在线租赁管理系统的任务要求主要实现的模块有:自行车管理模块,客户管理模块,租车管理模块和权限...
文中分析了传统计算机辅助工艺设计系统研究方法中所存在的问题,提出了利用平台/插件软件架构对计算机辅助工艺设计系统进行开发,论述了平台/插件软件设计的基本思想,并建立了基本框架,给出了软件设计步骤与开发过程,...
2.5设计的基本思想 9 2.6性能需求 9 2.6.1系统的安全性 9 2.6.2数据的完整性 9 2.7界面需求 10 2.7非功能性需求分析 11 2.7.1端到端响应时间 11 2.7.2易用性需求 11 2.7.3 可扩展性 11 第三章 系统分析与设计 12 3.1...
在实现其基本功能的前提下,理解掌握JSP方面编程的思想。 本系统是基于JSP技术,使用SSH框架(Spring+Hibernate+Struts2),软件采用MVC架构,页面使用Jquery工具,后台界面使用基于Jquery的EasyUI插件。 2 系统...
2.2设计的基本思想 9 2.3基础功能实现 10 2.3.1用户管理 10 2.3.2单点登录 10 2.4系统非功能性需求分析 10 2.4.1安全保密需求 10 2.4.2系统的性能需求 11 第3章 系统设计 12 3.1功能模块的设计 12 3.2数据库的设计 ...
了解到该医药公司的业务流程特点,结合现代企业的先进管理思想和模式,采用了Client/Server的可靠、高效系统作为平台,该系统包括了七大功能模块:系统管理、基本信息设置、进货信息管理、售货信息管理、库存信息...
2.3设计的基本思想 9 2.4设计的原则 10 第3章 系统设计 11 3.1系统结构设计 11 3.2功能模块设计 11 3.3数据库设计 11 第4章 系统实现 13 4.1基本任务 13 4.2系统主要功能得实现 13 4.2.1登录模块的实现 13 4.2.2 ...
2.2设计的基本思想 8 2.3功能需求的分析 9 2.4网络安全的相关需求 9 第3章 系统设计 10 3.1系统的功能设计 10 3.2整体的功能结构图的设计 10 3.3数据库的设计 11 3.3.1数据库的概念设计 11 3.3.2数据库的逻辑设计 12...
3.4设计的基本思想 7 4 系统详细设计 7 4.1 系统用例图设计 7 4.2系统模块设计 8 4.3 数据库模块设计 8 4.3.1 数据库的设计 8 4.3.2 E-R关系模型设计 9 4.4数据流程图 10 5 系统的实现 11 5.1 微信小程序个人中心 11...
2.5设计的基本思想 6 2.6性能需求 7 2.6.1系统的安全性 7 2.6.2数据的完整性 7 2.7界面需求 7 第三章 系统分析与设计 9 3.1数据库的分析与设计 9 3.1.1数据库的概念结构设计 9 3.1.2数据库的逻辑结构设计 11 3.1.3...
2.5设计的基本思想 7 2.6性能需求 8 2.6.1系统的安全性 8 2.6.2数据的完整性 8 2.7界面需求 8 第三章 系统分析与设计 9 3.1数据库的分析与设计 9 3.1.1数据库的概念结构设计 9 3.1.2数据库的逻辑结构设计 11 3.1.3...
2.5设计的基本思想 6 2.6性能需求 6 2.6.1系统的安全性 6 2.6.2数据的完整性 6 2.7界面需求 6 第三章 系统分析与设计 7 3.1数据库的分析与设计 7 3.1.1数据库的概念结构设计 7 3.1.2数据库的逻辑结构设计 8 3.1.3...
3.3 设计的基本思想 8 3.4 性能要求 8 3.4.1 网站的安全性 8 3.4.2 数据的完整性 9 3.4.3界面要求 9 第四章 网站功能实现 9 4.1系统实现 9 4.2 后台功能 9 4.2.1 管理员登录界面 9 4.2.2 系统首页 10 4.2.3 会员管理...
该项目首先进行需求分析,明确软件的基本功能和用户群体,如文本聊天、语音通话、视频聊天、文件传输等,并针对不同用户群体提供个性化的界面和交互设计。 在开发过程中,我们注重代码的规范性和可维护性,采用面向...
2.2设计的基本思想 6 2.3基础功能实现 7 2.4设计的原则 7 第3章 系统设计 9 3.1系统结构设计 9 3.2人脸识别功能的设计 9 第4章 系统实现 11 4.1 酒店客房入侵管理界面 11 4.2系统主要功能得实现 11 4.2.1客房管理...