atitit.插件体系设计总结o73.doc
1. 两大类型:微内核(级联树形结构)与巨内核(管理容器,并联结构)。 1
1. 两大类型:微内核(级联树形结构)与巨内核(管理容器,并联结构)。
插件系统主要有两大类型:微内核(级联树形结构)与巨内核(管理容器,并联结构)。
其中,微内核的主要特点是拥有父插件、子插件,而界面呈现是由扩 展点的父插件来决定,插件交互也是通过国展店实现的。此外,插件之间的赖关系由配置文件制定,其延迟加载也是由配置文件中的详细描述来定义,只有在调用时 才会被加载。
相对来说巨内核的界面呈现是由运行框架来决定的,在其设计之初就已经确定好未来插件的显示方式。而插件之间也是由巨内核统一进行管理的,其依赖关系一般没有管理。巨内核的典型例子就是目前很火的SNS社区,如校内网、Facebook、开心网等等。
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
2. 通用插件接口
另外,值得补充说明一下的是插件接口。插件接口通常有两种:
通用插件接口:这一类插件接口是通用的,你无法从接口函数看出这个插件的功能。它的接口函数通常有这些函数:
init : 用于初始化插件,通常在插件被加载时调用。
deinit:用于反初始化插件,通常在插件被卸载时调用。
run:让插件起动。
stop:让插件停止。
至于插件要完成什么功能,要插到哪里,在init函数里决定,它调用公共函数库里的函数把自己注册到框架中某个位置。
3. 插件的绑定and 初始化
加入插件的方式通常采用配置信息来实现
两个方式,一个是插件黑头Init,,要是单个的插件这个法好...
B..使用ioc 容器来绑定...分割..
Html, js这个法好..
4. 微内核插件平台设计
· 个微内核插件平台,只有一个插件加载器、插件版本控制组件、资源下载组件。
· 插件加载器,负责加载插件。
· 插件版本控制组件,负责询问版本服务器获取加载的版本。
· 资源下载组件,负责下载插件资源。
客户端的简要启动运行流程如下。
· 获取版本:内核启动后,询问版本控制服务器,获取需要加载的版本。
· 下载相应版本的XML配置。
· 加载器解析XML配置。
· 开始第一个插件加载逻辑。
· 下载第一个插件的资源。
· 加载第一个插件。
· 继续加载子节点插件。
· 微内核懒加载架构与Web架构的比较如表1所示。
5. 参考
插件式设计的架构模型与实例 - Linux mobile development - 博客频道 - CSDN.NET.htm
腾讯客户端架构 -- 客户端的插件化 - 梦中梦的日志 - 网易博客.htm
atitit.插件体系设计总结o73.doc的更多相关文章
- Atitit 插件机制原理与设计微内核 c# java 的实现attilax总结
Atitit 插件机制原理与设计微内核 c# java 的实现attilax总结 1. 微内核与插件的优点1 2. 插件的注册与使用2 2.1. Ioc容器中注册插件2 2.2. 启动器微内核启动3 ...
- atitit.抽奖活动插件组件设计--结构设计and 抽奖流程建模
atitit.抽奖活动插件组件设计--结构设计and 抽奖流程建模 1. 组件结构 1 2. startDraw 开始抽奖流程建模 1 3. 抽奖算法 2 作者:: 老哇的爪子 Attilax 艾龙, ...
- Atitit.异常的设计原理与 策略处理 java 最佳实践 p93
Atitit.异常的设计原理与 策略处理 java 最佳实践 p93 1 异常方面的使用准则,答案是:: 2 1.1 普通项目优先使用异常取代返回值,如果开发类库方面的项目,最好异常机制与返回值都提供 ...
- Atitit.安全性方案规划设计4gm v1 q928
Atitit.安全性方案规划设计4gm v1 q928 1. 安全架构设计与功能安全检测1 2. https1 3. 账号安全体系1 4. 配置文件安全 1 5. 源码加密与安全2 6. 最高强度的 ...
- Atitit 研发体系建立 数据存储与数据知识点体系知识图谱attilax 总结
Atitit 研发体系建立 数据存储与数据知识点体系知识图谱attilax 总结 分类具体知识点原理规范具体实现(oracle,mysql,mssql是否可以自己实现说明 数据库理论数据库的类型 数据 ...
- atitit.userService 用户系统设计 v4 q316 .doc
atitit.userService 用户系统设计 v4 q316 .doc 1. 新特性1 2. Admin login1 3. 用户注册登录2 3.1. <!-- 会员注册使用 --> ...
- Geronimo tomcat: 在 Apache Geronimo 插件体系中将 Apache Tomcat 这个优秀的 Web 容器整合至其中
Apache Geronimo 灵活的插件体系将 Tomcat, OpenJPA, OpenEJB, ActiveMQ 等第三方组件集成至其中.本文从多角度介绍了在 Apache Geronimo 中 ...
- atitit.loading的设计与实现控件选型attilax 总结
atitit.loading的设计与实现控件选型attilax 总结 1. Percentage Loader(推荐) 1 1.1. 起始百分比::调整 progress 1 2. CSS3 Loa ...
- atitit.提升兼容性最佳实践 p825.doc
atitit.提升兼容性最佳实践 p825.doc 1. Atitit.兼容性的“一加三”策略1 2. 扩展表模式2 3. 同时运行模式2 3.1. 完美的后向兼容性3 3.2. 虚拟机模式3 3.3 ...
随机推荐
- 【python】密码生成器
#!/usr/bin/env python#-*- coding:UTF-8 -*- import random #导入random模块import string #导入string模块 sal ...
- Android之activity中新建控件
了解了5大布局,我们会发现这些布局都是静态的,如何让系统自动生成控件呢?这就需要activity来帮忙了 今天我们讲的就是用activity新建布局 用案例来说吧! 实现一个输入行和列自动生成表格并生 ...
- JSP如何保存页面上众多的复选状态
一.描述: 最近写的一个问题管理模块,录入问题时需要选择客户(也就是那些客户存在这些问题),当保存完问题后,再次编辑问题时,如何从数据库里读取上次选中的客户并展示位勾选状态呢?问题表cust_ques ...
- [转]Linux vi 编辑后如何保存
比如:vi /etc/vsftpd/vsftpd.conf 按ESC键 跳到命令模式,然后: :w 保存文件但不退出vi :w file 将修改另外保存到file中,不退出vi :w! 强制保存,不推 ...
- 关于C# 窗体自动隐藏和加载的问题
最近在写一个小项目,开发一个小程序配合其他软件使用,其中一款软件在使用工作时需要截图生成报告,此时不能有其他应用程式界面在显示器桌面显示,故需要自动隐藏和加载窗体,通过阅读Windows API实现了 ...
- Python学习笔记- Python threading模块
Python threading模块 直接调用 # !/usr/bin/env python # -*- coding:utf-8 -*- import threading import time d ...
- sql server 2000通过机器名可以连,通过ip连不上的问题
客户那边两台服务器A和B,之前一直都是好好的,今天因为换了网络环境,结果数据库之间不能相互访问了. 目前只能A访问B,B访问不了A,在服务器A上面试了,通过ip连本机,也是连接超时. 开始想着是服务器 ...
- iOS UILabel根据字符串长度自动适应宽度和高度
//这个frame是初设的,没关系,后面还会重新设置其size. UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0, ...
- Asp.net mvc上传多张图片后台存储
前台页面通过<file name="img">标签数组上传图片,后台根据Request.Files["img"]来接收前台上传的图片. 1 Syst ...
- linq 多条件查询
Linq 进行多条件查询的时候使用PredicateBuilder帮助类可以很好的解决. 类的源码: public static class PredicateBuilder { /// <su ...