平台+插件软件设计基本思想
插件的本质在于不修改程序主体(平台)的情况下对软件功能进行扩展与加强,当插件的接口公开后,任何公司或个人都可以制作自己的插件来解决一些操作上的不便或增加新的功能,也就是实现真正意义上的“即插即用”软件开发。平台+插件软件结构是将一个待开发的目标软件分为两部分,一部分为程序的主体或主框架,可定义为平台,另一部分为功能扩展或补充模块,可定义为插件。
在进行软件开发之前,是否采用平台+插件结构进行软件开发,还要依据具体的软件需求情况进行确定,但一般来讲,使用平台+插件结构进行软件设计会给所开发软件增加新的生命力。当确定平台+插件的软件结构之后,就要分析哪些部分功能由主体完成,即平台的基本功能,哪些部分功能由插件完成,即需要扩展的插件功能。平台所完成的功能应为一个软件系统的核心和基础,这些基本功能即可为用户使用,也可为插件使用,就是又可以把平台基本功能分为两个部分,内核功能和插件处理功能。平台的内核功能是整个软件的重要功能,一个软件的大部分功能因由内核功能完成。平台的插件处理功能用于扩展平台和管理插件,为插件操纵平台和与插件通信提供标准平台扩展接口。插件所完成的功能是对平台功能的扩展与补充,一般插件完成系列化功能,例如:PHOTOSHOP的滤镜插件完成对图形的特殊效果处理,这些功能都有一些共性,可以进行集中管理,并且是可以定义出标准的插件接口。
为了实现平台+插件结构的软件设计需要定义两个标准接口,一个为由平台所实现的平台扩展接口,一个为插件所实现的插件接口。这里需要说明的是:平台扩展接口完全由平台实现,插件只是调用和使用,插件接口完全由插件实现,平台也只是调用和使用。平台扩展接口实现插件向平台方向的单向通信,插件通过平台扩展接口可获取主框架的各种资源和数据,可包括各种系统句柄,程序内部数据以及内存分配等。插件接口为平台向插件方向的单向通信,平台通过插件接口调用插件所实现的功能,读取插件处理数据等。
平台插件处理功能包括插件注册、管理和调用,以及平台扩展接口的功能实现。插件注册为按照某种机制首先在系统中搜索已安装插件,之后将搜索到的插件注册到平台上,并在平台上生成相应的调用机制,这包括菜单选项、工具栏、内部调用等。插件管理完成插件与平台的协调,为各插件在平台上生成管理信息以及进行插件的状态跟踪。插件调用为调用各插件所实现的功能。平台插件处理功能实现的另一部分功能为平台扩展接口的具体实现。
平台+插件软件设计步骤包括:
1、 确定平台基本功能和插件要完成系列化功能或扩展功能;
2、 定义平台扩展接口和插件接口;
3、 完成平台设计,主要是平台插件处理功能;
4、 向插件开发者提供主平台程序(执行代码),公布平台扩展接口和插件要实现的接口,可能包括开发用的SDK;
5、 插件开发者按要求开发插件,实现插件接口,开发者可使用提供的主平台程序测试插件;
6、 主平台设计者继续完成主平台的内核功能,并可随时公布新增加主平台扩展接口和插件接口;
7、 实现4-6步骤的良性循环,整个软件系统不断向前进化。
平台+插件软件设计的优点:
1、 实现真正意义上的软件组件的“即插即用”;
2、 在二进制级上集成软件,减少大量的软件重新编译与发布麻烦与时间;
3、 能够很好实现软件模块的分工开发,能够大量吸取他人的优长;
4、 可较好实现代码隐藏,保护知识产权。
- 浏览: 411549 次
文章分类
- 全部博客 (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 1111咳,今天给大家带来一个关于C#中的异常处理,很多朋友在C#中 ... -
C#如何判断操作系统位数是32位还是64位
2014-11-07 10:50 1384方法一:对于C#来说,调用WMI是一种简单易行的方式。我们 ... -
UML类图几种关系的总结
2014-11-03 09:34 507在UML类图中,常见的有以下几种关系: 泛化(Genera ... -
Assembly类
2014-10-30 10:25 607System.Reflection.Assembly类是一个 ... -
由云台协议DLL浅谈插件程序的编写(下)
2014-10-28 13:47 440由云台协议DLL浅谈插件程序的编写(下)【原创】 1.创建 ... -
由云台协议DLL浅谈插件程序的编写(上)
2014-10-28 13:47 541前言:本文通过一个简单的工程描述了一种插件设计的思想。复杂设 ... -
插件式设计的架构模型与实例
2014-10-28 13:38 336插件式设计近年来非常流行,其中eclipse起了推波助澜的作 ... -
C++插件架构浅谈与初步实现
2014-10-28 13:36 687一、插件架构初步介绍 ... -
什么时候用抽象类,什么时候用接口
2014-09-27 14:18 564共同点是他们都可以实现多态。 不同点在于设计抽象类和接口的目 ... -
使用 Override 和 New 关键字进行版本控制(C# 编程指南)
2014-09-24 14:10 508使用 Override 和 New 关键字进行版本控制(C# ... -
override(C# 参考)
2014-09-24 14:08 381override(C# 参考) Visual Stud ... -
接口可以实例化
2014-09-24 13:53 1027接口可以实例化 ... -
C#的WinForm中如何让窗体大小不能改变
2014-08-20 14:20 1100设置FormBorderStyle属性为FixDialog即可 ... -
HOW TO:使用 Visual C# .NET 从文件中读取 XML
2012-03-06 20:52 1213本文描述如何使用 XmlTe ... -
C#XML操作
2012-03-06 20:52 791using System.Xml; namespace ... -
c# http编程
2012-03-06 20:52 965c# http编程 2010-06-18 11:10 ... -
Visual C# HTTP协议开发
2012-03-06 20:53 1047Visual C# HTTP协议开发 HTTP协议简 ...
相关推荐
《基于插件思想的可重用软件设计与实现》这篇论文深入探讨了如何利用插件化设计理念来构建可复用的软件系统。插件思想在软件工程领域中扮演着重要的角色,它允许软件具备高度的模块化和扩展性,使得不同功能可以通过...
Adobe Extension Manager是Adobe公司提供的一款用于扩展其Creative Suite系列软件功能的工具,尽管它主要用于多媒体和设计领域,但在这里,我们将其应用于GIS系统的开发,利用其丰富的插件和定制能力,为GIS系统提供...
### 面向对象的PLC上位机软件平台设计 #### 摘要与背景 随着自动化领域的不断发展,PLC(可编程逻辑控制器)在工业控制中的应用越来越广泛。然而,不同制造商提供的PLC产品及其配套软件通常采用不同的通信协议和...
面向结构思想的DLL插件是一种较早的实现方式,主要通过导出函数作为平台与插件之间的通讯接口。这种方式的优点在于简单易行,但同时也存在明显的缺点: - **局限性**:软件的可复用性和可扩展性较差。 - **升级难度...
《2023下半年软考中级软件设计师试题及答案解析》是针对全国计算机技术与软件专业技术资格(水平)考试(简称“软考”)中级软件设计师科目的重要参考资料。软考是中国信息技术领域的一项权威认证,旨在考核应试者在...
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 ...
设计模式是软件工程中的一种重要思想,它是在特定上下文中为解决常见问题而形成的一套最佳实践。在Java编程中,设计模式被视为提高代码可读性、可维护性和复用性的关键工具。"设计模式插件"可能是一个专门用于帮助...
其基本思想是采用分治策略,选择一个基准值,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以...
程序开发软件: Visual Studio 2010以上 数据库:sqlserver2005以上,8个表 基于MVC思想和三层模式开发!根据自行车在线租赁管理系统的任务要求主要实现的模块有:自行车管理模块,客户管理模块,租车管理模块和权限...
在 SOA 体系结构下,软件开发方法主要包括面向对象编程思想、流程控制技术和数据库设计等。这些方法可以提高软件系统的可维护性和可重用性,提高软件开发的效率和质量。 插件体系结构和面向服务架构(SOA)体系结构...
这种框架的设计思想源自于对软件可扩展性和灵活性的需求,使得开发者能够在不重启程序的情况下,对功能进行增删改,提高了用户体验。 在Winform应用程序中实现插件框架,首先需要理解的核心概念是“接口”。接口...
3. **插件式设计**:模块化设计思想,便于实验装置的组装、拆卸和维护,可能涉及标准化接口和快速连接技术。 4. **实验装置安全**:在设计过程中要考虑设备的安全性,避免液压系统的泄露、过压等风险。 5. **计算与...
MVC是Model-View-Control的缩写,是一种软件设计模式,主要应用于用户界面设计。JMF是Java Media Framework的缩写,是一个用于处理多媒体数据的java API。 在设计音频播放器软件时,需要划分并设计系统功能模块,...
软件设计模式的基本思想是:软件实体应当对扩展开放,而对修改关闭,抽象不应该依赖于细节,细节应该依赖于抽象,一个类或模块承担的责任尽可能的少,使尽可能少的因素或动机影响该类或该模块。 1. 开-闭原则(OCP...
在软件开发中,插件模式是一种常见的设计模式,它允许用户通过添加或移除插件来扩展程序的功能,而无需修改程序的源代码。这种模式在VC(Visual C++)环境中尤其常见,因为VC支持MFC(Microsoft Foundation Classes...