[转]用C++实现插件体系结构】的更多相关文章

用C++实现的一种插件体系结构-----概述 本文讨论一种简单却有效的插件体系结构,它使用C++,动态链接库,基于面向对象编程的思想.首先来看一下使用插件机制能给我们带来哪些方面的好处,从而在适当时候合理的选择使用.1, 增强代码的透明度与一致性:因为插件通常会封装第三方类库或是其他人编写的代码,需要清晰地定义出接口,用清晰一致的接口来面对所有事情.你的代码也不会被转换程序或是库的特殊定制需求弄得乱七糟.2, 改善工程的模块化:你的代码被清析地分成多个独立的模块,可以把它们安置在子工程中的文件组…
本文讨论一种简单却有效的插件体系结构,它使用C++,动态链接库,基于面向对象编程的思想.首先来看一下使用插件机制能给我们带来哪些方面的好处,从而在适当时候合理的选择使用. 1. 增强代码的透明度与一致性: 因为插件通常会封装第三方类库或是其他人编写的代码,需要清晰地定义出接口,用清晰一致的接口来面对所有事情.你的代码也不会被转换程序或是库的特殊定制需求弄得乱七糟. 2. 改善工程的模块化: 你的代码被清析地分成多个独立的模块,可以把它们安置在子工程中的文件组中.这种解耦处理使得创建出的组件更加容…
Nutch 基本情况 Nutch 是 Apache 基金会的一个开源项目,它原本是开源文件索引框架 Lucene 项目的一个子项目,后来渐渐发展成长为一个独立的开源项目.它基于 Java 开发,基于 Lucene 框架,提供 Web 网页爬虫功能.另外很吸引人的一点在于,它提供了一种插件框架,使得其对各种网页内容的解析.各种数据的采集.查询.集群.过滤等功能能够方便的进行扩展,正是由于有此框架,使得 Nutch 的插件开发非常容易,第三方的插件也层出不穷,极大的增强了 Nutch 的功能和声誉.…
1.  插件体系结构 1.1. 插件技术原理 1.1.1.    插件概念说明 插件是一种遵循统一的预定义接口规范编写出来的程序,应用程序在运行时通过接口规范对插件进行调用,以扩展应用程序的功能.在英文中插件通常称为plug-in.plugin或者plug in.插件最典型的例子是Eclipse开发平台,Microsoft的ActiveX控件和COM(Component Object Model,部件对象模型)实际上ActiveX控件不过是一个更高继承层次的COM而已.此外还有Photoshop…
1 .引言随着计算机可视化.虚拟现实技术的飞速发展,人们对实时真实感渲染以及场景复杂度提出了更高的要求.传统的直接使用底层图形接口如OpenGL.DirectX开发图形应用的模式越来越暴露出开发复杂性大.周期性长.维护困难的缺陷.为此国外出现了许多优秀的三维渲染引擎,比如Delta3D,OGRE,OSG,Unity3d,VTK等.渲染引擎的作用是要优化遍历和显示三维模型.本文主要对OGRE与OSG这两个三维图形渲染引擎做个简单的比较,介绍他们在运行效率.场景管理.功能支持.可扩展性等方面的异同.…
来源:https://java.com/zh_CN/download/faq/chrome.xml 本文适用于: 浏览器: Chrome Java 版本: 7.0, 8.0 Chrome 不再支持 NPAPI(Java 小应用程序需要用到这项技术) 用于 Web 浏览器的 Java 插件依赖于跨平台的插件体系结构 NPAPI,它在十多年来一直受所有主要 Web 浏览器的支持.Google Chrome 版本 45(计划于 2015 年 9 月发布)将不再支持 NPAPI,这会影响到用于 Silv…
一.       首个全流程跨平台界面开发套件,PowerUI正式发布 UIPower在DirectUI的基础上,自主研发全球首个全流程跨平台界面开发套件PowerUI(PUI)正式发布,PowerUI将于2016年8月底正式发布! PowerUI全流程跨平台界面开发套件包含有:PUI UXDesigner用户体验设计工具,PS Builder 视觉设计辅助工具,PUI Builder 可视化界面开发工具,PUI Control Creator 可视化控件开发工具,PUI SDK 界面开发系统支…
phoneGap3.0安装步骤(以windows下的android环境为例): 环境: WIN系统,JDK,Android,Eclipse,Ant,Git,PhoneGap3.x (Cordova) 1. 安装JRE,设置JAVA_HOME,比如JAVA_HOME=C:\program\Java\jre6\bin. 2. Cordova支持Android 2.2, 2.3, and 4.x. 下载安装SDK: http://developer.android.com/sdk/index.html…
Java中进行图像I/O(即读图片和写图片,不涉及到复杂图像处理)有三个方法:1. Java Image I/O API,支持常见图片,从Java 2 version 1.4.0开始就内置了.主页:http://java.sun.com/javase/6/docs/technotes/guides/imageio/index.html2. JAI 中的 Image I/O Tools,支持更多图片类型,例如JPEG-LS, JPEG2000, 和 TIFF.主页:https://jai-imag…
一. 1.准备环境nodejs(http://nodejs.org/download/) 2.ant(http://ant.apache.org/bindownload.cgi) 3.Android SDK工具 下载地址:http://developer.Android.com/sdk/ 运行SDK Manager.exe 二.环境安装 1. nodejs的安装比较简单,直接在官网上下载msi文件进行安装 安装node.js phonegap3中需要使用命令行环境,早phonegap中叫CLI.…
在这之前,我们已经对VMware ESXi 5.5进行了整个环境的设计和规划,虽然安装VMware ESXi 5.5在CPU的选型.网络的设计.共享存储的方式.虚拟化资源的需求和安装ESXI的模式等一些列因素中都充分的进行了考虑,包括VMware ESXi 5.5的安装设计.最终实现的效果和整体方案的规划.这些都只是先前的第一步,那么,一个好的虚拟化平台往往是需要一个强大的管理软件,那今天我就和大家聊一聊强大的VMware vCenter. 我相信大家对VMware vCenter都不会陌生,很…
1. 基本原理 组件是组件系统中功能的表现,没有组件就没有功能.特定接口是用于给组件管理程序来操纵.管理该组件,特定功能是组件需要完成的任务.在一个使用组件建立的产品中会随着功能数目的多少而会有多个组件的存在.  组件与组件管理程序的交互通过接口来完成,所以对于一个组件体系,组件接口的定义是很重要的事情.接口的定义描述了组件管理程序与组件的调用规则和交互过程. 2. 组件技术 概念 组   件: 组件是可独立完成某个或一系列功能的模块.通常组件由宿主程序加载,不能独立运行. 宿   主: 宿主是…
Magento的配置系统就像是Magento的心脏,支撑着Magento的运行.这套配置系统掌管着几乎所有"module/model/class/template/etc".它把整个Magento系统抽象出来,用一个配置文件来描述.这里的"配置文件"并不是一个物理上存在的文件,而是Magento根据当前的系统状态动态生成的一段XML.大多数的PHP开发者并不习惯于这样抽象层,因为它增加的编程的复杂性.但是这样的抽象提供了无与伦比的灵活性,允许你覆盖几乎任何系统的默认…
EEPlat PaaS平台提供了基于元数据驱动的以配置为主的高速开发平台,同一时候提供了完整的多租户实现,各租户拥有自己的独立应用和数据库,租户间实现了应用和数据的全然隔离. EEPlat PaaS平台包含四大子系统:多租户管理子系统.企业应用后台配置开发环境.元数据驱动引擎.企业应用分发管理子系统等. 核心原理流程图 EEPlat PaaS平台的原理,核心是元数据和运行引擎. 通过后台配置开发环境定义元数据,再由元数据的运行引擎解析运行为对应的系统. EEPlat PaaS平台的原理图例如以下…
OSGI介绍 OSGI简介 OSGI (Open Service Gateway Initiative)联盟成立于1999 年,它是一个非盈利的国际组织,旨在建立一个开放的服务规范,为通过网络向设备提供服务建立开放的标准,是开放业务网关的发起者. OSGI联盟的初始目标是构建一个在广域网和局域网或设备上展开业务的基础平台,对OSGI 的最早设计也是针对嵌入式应用的,诸如机顶盒.服务网关.手机.汽车等都是其应用的主要环境. 由于OSGI的诸多优秀特性(可动态改变系统行为,热插拔的插件体系结构,高可…
基于 OSGi 的面向服务的组件编程 OSGi(Open Services Gateway Initiative,开放服务网关协议)提供了一个面向服务组件的编程模型,基于 OSGi 编程,具有模块化,标准化,面向服务,动态性,易复用,易扩展,易部署等诸多优点,本文介绍了基于 OSGi 开发一个应用程序的过程,读者可以学习如何基于 OSGi 开发自己的应用,并从中体会 OSGi 上述的优点. 一. OSGi 简史 OSGi 是由 1999 年成立的 OSGi 联盟提出的一个开放的服务规范,最初的目…
go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE Go语言是谷歌2009发布的专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全.支持并行进程. Go语言中文网 - Golang中文社区https://studygolang.com/ The Go Programming Language (官方网站需要翻)https://golang.org/ 下载后直接下一步,下一步安装就可以了 下载 LiteIDE -…
Smarty百科 Smarty是一个php模板引擎.更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同一个人.例如,你正在创建一个用于浏览新闻的网页,新闻标题,标签栏,作者和内容等都是内容要素,他们并不包含应该怎样去呈现.在Smarty的程序里,这些被忽略了.模板设计者们编辑模板,组合使用html标签和模板标签去格式化这些要素的输出(html表格,背景色,字体大小,样式表,等等).有一天程序员想要改…
翻译前想说的话: 这是一篇介绍python装饰器的文章,对比之前看到的类似介绍装饰器的文章,个人认为无人可出其右,文章由浅到深,由函数介绍到装饰器的高级应用,每个介绍必有例子说明.文章太长,看完原文后我计划按照文章作者的划分,将分为两章翻出来和大家分享,如果你觉得干的还不错,就点个赞吧. 目录: 函数 一等对象 内部函数 从函数中返回函数 简单装饰器 语法糖 复用装饰器 装饰器传参 从装饰器返回值 你是谁? 一些现实中的例子 时间函数 调试代码 给代码降速 注册插件 用户是否登录? 有想象力的装…
本文内容 纯文本和静态 HTML 页面 服务器端技术 插件技术--ActiveX.Applet 和 Flash Ajax 异步时代和基于 JavaScript 的 UI 技术 RIA--Adobe Flex.Microsoft Silverlight.Sun JavaFx 本文回顾一下 Web UI 的发展历程. 纯文本和静态 HTML 页面 1989 年 Tim Berners Lee 发明了万维网,可以相互访问分散在网络上各处的资源.那时的网页没有 UI 概念,只是纯文本和跳转的超链接而已.…
使用范例: VMware Automation with vCenter Orchestrator http://www.rodmach.com/blog/?p=46 直接从 VSPHERE CLIENT 中对异构环境进行编排 VMware vCenter Orchestrator 是一个 IT 流程自动化引擎,可以帮助您自动化云计算并将 VMware vCloud Suite 与其余的管理系统进行集成. 编排可以节约时间.消除人为错误.减少运营开支并简化 IT 管理. VMware vCent…
1   前言 我曾经细致阅读过 OGRE 和 OSG 官方提供的文档,有<Pro OGRE 3D Programming>.OGRE自带手册(manual).王锐老师等翻译的<OpenSceneGraph  Quick  Guide>,同时在网络上查阅了大量的 OGRE 架构源码分析的文章.简单使用过 OSG,对 OSG 的场景管理器设计和编程风格有所了解,而在近期的项目中大量使用 OGRE,相对于 OSG,对 OGRE 的认识比较深刻一些.目前 OGRE 的最新版本是 1.7,O…
Pentaho Data Integration(PDI)简介 1. PDI结构简介 图 1‑1 PDI核心组件 Spoon是构建ETL Jobs和Transformations的工具.Spoon可以以拖拽的方式图形化设计,能够通过spoon调用专用的数据集成引擎或者集群. Data Integration Server是一个专用的ETL Server,它的主要功能有: 功能 描述 执行 通过Pentaho Data Integration引擎执行ETL的作业或转换 安全性 管理用户.角色或集成…
今天偶然看到这篇文章,做个入门了解还是不错的. 前一阵子在QQ上和朋友聊天的时候,总会看到有人说Linux上的应用程序开发是高手才可以完成的,而且这种“迷信”在目前似乎还很普遍.然而,情况并不是这样的,从程序库的支持方面,Linux平台为用户级应用程序的开发提供了很多功能强大且丰富的程序库,而且它们大部分是跨平台的(Boost.OpenGL.STL.Qt.Java等)和基于POSIX标准的(glibc等),同时Linux内核还为驱动程序的开发提供了功能完备的内核接口,从开发工具方面,Linux提…
1.问题的缘由 实际开发系统的时候,经常需要用别的用户运行一个程序.比如,有些系统为保证系统安全,不允许使用root来运行.这里,我们总结了unix系统下如何解决这个问题的一些方法.同时,我们还讨论如何在python脚本里实现. 2.unix系统的方法 2.1.runuser runuser允许使用替代用户和组ID来运行命令.如果选项-u没有给出,则回退到su兼容的语义和shell被执行. runuser和su命令之间的区别在于runuser不要求输入密码(因为它可能仅由root用户执行),它使…
QtCreator采用插件体系结构.主程序启动插件管理器(PluginManager),再通过插件管理器加载其插件,QtCreator的所有功能均使用插件实现. 我们先来分析主程序对插件管理器的主要操作: int main(int argc, char **argv) { ...... ExtensionSystem::PluginManager pluginManager;//生成插件管理器实例 pluginManager.setFileExtension(QLatin1String("plu…
关于OGRE与OSG的简单比较 林乃养 lnychina{at}gmail.com 浙江大学CAD&CG实验室 2010年3月27日 1 前言 我曾经细致阅读过OGRE和OSG官方提供的文档,有<Pro OGRE 3D Programming>.OGRE自带手册(manual).王锐老师等翻译的<OpenSceneGraph Quick Guide>,同时在网络上查阅了大量的OGRE架构源码分析的文章.简单使用过OSG,对OSG的场景管理器设计和编程风格有所了解,而在近期的…
http://blog.sina.com.cn/s/blog_64dab14801013k7g.html Solr简介 Solr是一个非常流行的,高性能的开源企业级搜索引擎平台,属于Apache Lucene项目.主要功能包括强大的全文检索.结果高亮.切面检索.动态聚类.数据库整合.富文本(例如Word,PDF)的处理,以及地理信息搜索.Solr是高度可扩展的,提供分布式检索和索引复制,并为世界上众多的大型网站提供搜索和导航功能. Solr使用Java编写,可运行于servlet容器(如Tomc…
关于 OGRE 与 OSG 的简单比较 1   前言 我曾经细致阅读过 OGRE 和 OSG 官方提供的文档,有<Pro OGRE 3D Programming>.OGRE自带手册(manual).王锐老师等翻译的<OpenSceneGraph  Quick  Guide>,同时在网络上查阅了大量的 OGRE 架构源码分析的文章.简单使用过 OSG,对 OSG 的场景管理器设计和编程风格有所了解,而在近期的项目中大量使用 OGRE,相对于 OSG,对 OGRE 的认识比较深刻一些.…
16.4.1  Unitils概述(1) Unitils测试框架目的是让单元测试变得更加容易和可维护.Unitils构建在DbUnit与EasyMock项目之上并与JUnit和TestNG相结合.支持数据库测试,支持利用Mock对象进行测试并提供与Spring和Hibernate相集成.Unitils设计成以一种高度可配置和松散耦合的方式来添加这些服务到单元测试中,目前其最新版本是3.1. Unitils功能特点 自动维护和强制关闭单元测试数据库(支持Oracle.Hsqldb.MySQL.DB…