鄙人乃码农,不善辞藻,遂采用一问一答式,试图解开插件架构之谜雾。此次只讲原理不上码。
什么叫插件?
此处不作解释。
插件的分类?
插件粗分为可视插件和非可视插件。
插件的存在形态?
插件最终静静地持久在磁盘的某个文件中。在DELPHI中插件以.dll和.bpl俩种扩展名的文件存在。
插件的加载和释放?
插件既有生(加载)亦有死(释放)。bpl插件和dll插件的加载和释放都有所不同,要具体对待。
如何判断是哪一种插件?
通过判断插件文件的扩展名可以知道是哪一种插件。在DELPHI中插件的扩展名不是<.dll>就是<.bpl>。
插件框架的组成?
由一个插件的加载程序和N个插件组成。它们都是单独的工程,这些工程们组成一个庞大的工程组。
插件的加载程序?
它是一个可执行程序,由它来开辟一块进程空间,由它负责加载插件们进它的进程空间里面。

插件的粒度?
一个插件可以只包含一个功能模块,也可以包含N个功能模块。每一个功能模块都是类(窗体类)。
这些窗体类有些是可视的,有些是非可视的。如果一个插件只包含一个可视的窗体类,我们叫它
可视插件?
如何封装插件的功能模块?
可视插件和非可视插件都可以使用窗体作为插件的容器。如果是可视插件,让窗体容器创建后显示;
如果是非可视插件让窗体容器创建后隐藏。例子:DELPHI就是用非可视窗体作容器封装线程。

如何调用插件中的功能模块?
通过指针。插件.句柄-->统一的接口.统一的方法(参数们)
插件和插件加载程序之间的契约?
各插件和插件加载程序都必须遵守:统一的接口.统一的方法(参数们)。

转载于:https://www.cnblogs.com/hnxxcxg/p/3261697.html

插件架构的原理及实现探讨相关推荐

  1. 【金融科技前沿】区块链和数字经济(区块链的缘起,现状和发展、区块链技术架构和原理解析 、区块链应用和案例综述)

    1.缘由 前段时间微众银行的区块链首席架构师张开翔老师给我们上了一堂近三小时的课,与其说是在上课,不如说是一场思想的享受.开翔老师跟我们学院联系挺密切的,之前比赛也见过他,我印象中他一直是一位顶级的技 ...

  2. 企业实战案例-- LNMP基础架构的原理及部署以及wordpress论坛的安装

    企业实战案例-- LNMP基础架构的原理及部署以及wordpress论坛的安装 LNMP架构原理 一.源码安装mysql 二.源码安装php 三.源码安装nginx 四.安装wordpress论坛 L ...

  3. 5 个维度深度剖析「主从架构」原理

    为了保证缓存的高可用,我们经常听到采用主从架构来保证高可用,那如何去理解主从架构核心原理呢? 这次我们还是用最熟悉的 Redis 缓存来理解主从架构,只要理解了一个主从架构,其他技术的主从架构都是一通 ...

  4. Hadoop系列文章 Hadoop架构、原理、特性简述

    Hadoop系列文章 Hadoop架构.原理.特性简述 Hadoop HDFS HDFS介绍 HDFS架构图 HDFS写入数据流程图 HDFS读取数据流程图 数据块的副本集 Hadoop YARN Y ...

  5. [转载]MaxtoCode对.Net程序加密的原理及解密探讨三(实例解密)

    标 题: [原创]MaxtoCode对.Net程序加密的原理及解密探讨三(实例解密) 作 者: rick 时 间: 2006-09-29,23:16:28 链 接: http://bbs.pediy. ...

  6. atitit.jndi的架构与原理以及资源配置and单元測试实践

    atitit.jndi的架构与原理以及资源配置and单元測试实践 1. jndi架构 1 2. jndi实现原理 3 3. jndi资源配置 3 3.1. resin  <database> ...

  7. android 类加载器 DexClassLoader的用法,以及引出的插件架构

    1.android 类加载器(DexClassLoader的用法),调用其他apk的类中的方法: 方式一: 然后在Host中利用下面的方式调用 PackageManager pm = getPacka ...

  8. 【Android 插件化】“ 插桩式 “ 插件化框架 ( 原理与实现思路 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  9. Firefox Quantum支持跨浏览器插件架构

    最新发布的Firefox 57 "Quantum"加入到Chrome和Edge的行列,现在只支持基于WebExtensions API的扩展插件,也就是基于跨浏览器的扩展架构,使用 ...

最新文章

  1. 嵌入式开发中DSP与FPGA的关系
  2. (0038) iOS 开发之Xcode下的DerivedData文件
  3. 人工智能与模式识别 --中国计算机学会推荐国际学术刊物
  4. JZOJ 3808. 【NOIP2014模拟8.25】道路值守
  5. 身为初学Java的你,这些IDE的优缺点你都知道吗?
  6. 安装博图v15每次让重启计算机,博途V15.1安装及无限重启和.net3.5SP1错误处理解决方法...
  7. selenium随笔
  8. 一起来看流星雨剧情简介/剧情介绍/剧情分集介绍第六集
  9. 源码剖析 Netty 服务启动 NIO
  10. 【JavsScript】关于javascript的路线
  11. html5的一天,HTML5微电影制作 - 小猫一天的生活
  12. UML图各类符号含义
  13. python+sklearn利用特征文件来训练和测试模型并使用joblib方法持久化存储模型
  14. 阿里云国际版服务器电子商务直播解决方案
  15. 解决VScode中C语言中文乱码问题
  16. 转载:SyncToy安装使用详解
  17. 画一只会动的皮卡丘(上)
  18. 关于Network ACLs的理解
  19. E. Jumpy Robot(枚举题)
  20. 机器人被挠脚心_《fm及机器人系列(tk)》专题

热门文章

  1. Qt文档阅读笔记-WebEngine Content Manipulatoin Example
  2. 工具杂记-notepad++正则表达式匹配替换
  3. Redis工作笔记-Hash类型
  4. Qt文档阅读笔记-QUdpSocket基本表述及简单实现
  5. Qt creator5.7 OpenCV249之图片灰度处理(含源码下载)
  6. unity3d Android多渠道,Unity For Android多渠道SDK接入解决方案
  7. 电脑桌面点任何文件都打开计算机,桌面上的文件全部都打不开
  8. python做俄罗斯方块如何显示下一个随机方块_随机俄罗斯方块形状
  9. cv mat保存图片_(七)神秘的Mat
  10. canopy算法流程_Canopy聚类算法(经典,看图就明白)