插件架构的原理及实现探讨
2013-08-16 11:18
585 查看
鄙人乃码农,不善辞藻,遂采用一问一答式,试图解开插件架构之谜雾。此次只讲原理不上码。
什么叫插件?
此处不作解释。
插件的分类?
插件粗分为可视插件和非可视插件。
插件的存在形态?
插件最终静静地持久在磁盘的某个文件中。在DELPHI中插件以.dll和.bpl俩种扩展名的文件存在。
插件的加载和释放?
插件既有生(加载)亦有死(释放)。bpl插件和dll插件的加载和释放都有所不同,要具体对待。
如何判断是哪一种插件?
通过判断插件文件的扩展名可以知道是哪一种插件。在DELPHI中插件的扩展名不是<.dll>就是<.bpl>。
插件框架的组成?
由一个插件的加载程序和N个插件组成。它们都是单独的工程,这些工程们组成一个庞大的工程组。
插件的加载程序?
它是一个可执行程序,由它来开辟一块进程空间,由它负责加载插件们进它的进程空间里面。
插件的粒度?
一个插件可以只包含一个功能模块,也可以包含N个功能模块。每一个功能模块都是类(窗体类)。
这些窗体类有些是可视的,有些是非可视的。如果一个插件只包含一个可视的窗体类,我们叫它
可视插件?
如何封装插件的功能模块?
可视插件和非可视插件都可以使用窗体作为插件的容器。如果是可视插件,让窗体容器创建后显示;
如果是非可视插件让窗体容器创建后隐藏。例子:DELPHI就是用非可视窗体作容器封装线程。
如何调用插件中的功能模块?
通过指针。插件.句柄-->统一的接口.统一的方法(参数们)
插件和插件加载程序之间的契约?
各插件和插件加载程序都必须遵守:统一的接口.统一的方法(参数们)。
什么叫插件?
此处不作解释。
插件的分类?
插件粗分为可视插件和非可视插件。
插件的存在形态?
插件最终静静地持久在磁盘的某个文件中。在DELPHI中插件以.dll和.bpl俩种扩展名的文件存在。
插件的加载和释放?
插件既有生(加载)亦有死(释放)。bpl插件和dll插件的加载和释放都有所不同,要具体对待。
如何判断是哪一种插件?
通过判断插件文件的扩展名可以知道是哪一种插件。在DELPHI中插件的扩展名不是<.dll>就是<.bpl>。
插件框架的组成?
由一个插件的加载程序和N个插件组成。它们都是单独的工程,这些工程们组成一个庞大的工程组。
插件的加载程序?
它是一个可执行程序,由它来开辟一块进程空间,由它负责加载插件们进它的进程空间里面。
插件的粒度?
一个插件可以只包含一个功能模块,也可以包含N个功能模块。每一个功能模块都是类(窗体类)。
这些窗体类有些是可视的,有些是非可视的。如果一个插件只包含一个可视的窗体类,我们叫它
可视插件?
如何封装插件的功能模块?
可视插件和非可视插件都可以使用窗体作为插件的容器。如果是可视插件,让窗体容器创建后显示;
如果是非可视插件让窗体容器创建后隐藏。例子:DELPHI就是用非可视窗体作容器封装线程。
如何调用插件中的功能模块?
通过指针。插件.句柄-->统一的接口.统一的方法(参数们)
插件和插件加载程序之间的契约?
各插件和插件加载程序都必须遵守:统一的接口.统一的方法(参数们)。
相关文章推荐
- Spring技术内幕——深入解析Spring架构与设计原理(四)Web MVC的实现
- Consul实现原理系列文章3: Consul的整体架构
- PHP 反射机制详解 以及插件架构实现
- 由浅入深分析mybatis通过动态代理实现拦截器(插件)的原理
- 在C#程序中实现插件架构 - Sunmast翻译(转载)
- Spring技术内幕——深入解析Spring架构与设计原理(一)IOC实现原理
- 插件技术原理及其C#实现
- Hbase架构和实现原理
- 基于 EntityFramework 的数据库主从读写分离架构(1) - 原理概述和基本功能实现
- C++插件架构浅谈与初步实现
- C++插件架构浅谈与初步实现
- 从Apache的日志文件收集和提供统计数据(一个Python插件架构的简单实现)
- 微服务架构的核心要点和实现原理
- 在C#程序中实现插件架构
- 基于微信红包插件的原理实现android任何APP自动发送评论(已开源)
- jQuery的datatable的使用例子,以及通过例子分析datatable插件的实现过程,即不但要会用,还要懂其原理
- Android中微信抢红包插件原理解析和开发实现
- Consul实现原理系列文章3: Consul的整体架构
- PHP 反射机制详解 以及插件架构实现
- 三层架构的实现原理.02