分层模型的典型应用和FishiGUI的分层模型
分层模式的典型应用:
对于交互类型的软件也能够採用分层模式来进行架构分析,一般来说将交互性的软件分为三个层次比較合适:显示层的职责是为了显示信息,应用逻辑层封装那些一般不easy发生变化的核心逻辑,而数据持久层则用于数据处理而且把数据记录在文件,数据库等存储位置
对于系统类型的软件,一般将软件分为中间层和系统层两个层次,中间层包含对话框架系统.数据管理接口以及一些与平台无关的服务。系统层则包含操作系统接口,数据库接口,硬件接口等
![]()
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjgyOTE1Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
FishiGUI的分层架构:
FishiGUI是一个能够为其它应用程序提供图形用户界面服务的框架系统,从这个角度上看。假设我们考察的是FishiGUI和上层应用共同组成的完整的可运行程序。那么整个系统就能够划分为应用层和框架层这两个基本的层次,当中框架层有FishiGUI项目组开发,应用层则由应用程序项目组开发,同一时候应用层依赖于框架层。而框架层不依赖于应用层
由于要求FishiGUI系统必须被移植到不同的操作系统下,为了保证系统的可移植性,有必要将于操作系统相关的功能部分纳入一个新的层次:操作系统适配层
应用包的引入:
在FishiGUI系统的分层架构中,框架定义的很多结构宏或者枚举类型都会被操作系统适配层訪问。这就回造成操作系统适配层依赖于框架层定义的数据类型(循环依赖),为了消除这样的循环依赖,我们提取公共部分,把全部公共的数据结构以及相关操作提取出来,放进一个单独的包里,因为这个包没有什么层次上的概念。所以它不放进不论什么一层,可是又能够被其它层调用,能够把它看作一个独立的应用包
分层模型的典型应用和FishiGUI的分层模型的更多相关文章
- 领导者/追随者(Leader/Followers)模型和半同步/半异步(half-sync/half-async)模型都是常用的客户-服务器编程模型
领导者-追随者(Leader/Followers)模型的比喻 半同步/半异步模型和领导者/追随者模型的区别: 半同步/半异步模型拥有一个显式的待处理事件队列,而领导者-追随者模型没有一个显式的队列(很 ...
- Windows五种IO模型性能分析和Linux五种IO模型性能分析
Windows五种IO模型性能分析和Linux五种IO模型性能分析 http://blog.csdn.net/jay900323/article/details/18141217 http://blo ...
- ArcGIS模型构建器案例学习笔记-字段处理模型集
ArcGIS模型构建器案例学习笔记-字段处理模型集 联系方式:谢老师,135-4855-4328,xiexiaokui@qq.com 由四个子模型组成 子模型1:判断字段是否存在 方法:python工 ...
- [MVC]自定义模型绑定器,从表单对模型进行赋值
一.奇葩的问题 之前自己造轮子的时候,遇到一个很奇怪的问题,虽然需求很奇葩,但是还是尝试解决了一下 当提交的表单里包含多个重复名称的字段的时候,例如 <form action="/Te ...
- 吴裕雄 python 机器学习——模型选择参数优化随机搜索寻优RandomizedSearchCV模型
import scipy from sklearn.datasets import load_digits from sklearn.metrics import classification_rep ...
- MVC无限级分类01,分层架构,引入缓存,完成领域模型与视图模型的映射
本系列将使用zTree来创建.编辑关于品牌.车系.车型的无限级分类,使用datagrid显示,源码在github.先上最终效果: datagrid显示所有记录.分页,提供添加.修改.删除按钮,并提供简 ...
- 计算机网络漫谈:OSI七层模型与TCP/IP四层(参考)模型
提纲.png 一.七层?四层? OSI模型(Open System Interconnection Reference Model,缩写为OSI),全名“开放式系统互联通信参考模型”,是一个试图使各种 ...
- 第二章平稳时间序列模型——AR(p),MA(q),ARMA(p,q)模型及其平稳性
1白噪声过程: 零均值,同方差,无自相关(协方差为0) 以后我们遇到的efshow如果不特殊说明,就是白噪声过程. 对于正态分布而言,不相关即可推出独立,所以如果该白噪声如果服从正态分布,则其还将 ...
- 标准的CSS盒子模型?与低版本IE的盒子模型有什么不同的?
CSS盒子模型:由四个属性组成的外边距(margin).内边距(padding).边界(border).内容区(width和height); 标准的CSS盒子模型和低端IE CSS盒子模型不同:宽高不 ...
随机推荐
- cxf WebService整理 (基于注解)
http://blog.csdn.net/zjw10wei321/article/details/39889823
- flash文件运动节奏的控制
flash里面,比较难的是控制运动的节奏.参考了几个韩国网站的fla源文件,提出以下几个建议与参考. 1,flash文件里面,每秒的帧数 设置为 120,或者一个比较大的数字(90,60).普通的文件 ...
- Objective-C学习篇01—类的声明与实现
Objective-C,是美国人布莱德·确斯(Brad Cox)于 1980 年年初发明的一 种程序设计语言,其与同时代的 C++ 一样,都是在 C 的基础上加入面向对象特性扩充而成的.Objecti ...
- Hibernate 性能优化之抓取策略
fetch 抓取策略 前提条件:必须是一个对象操作其关联对象. 1. 根据一的一方加载多的一方,在一的一方集合中,有三个值:join/select/subselect 2.根据多的一方加载一的一方, ...
- ThinkPHP 的CURD 基本操作
说起CURD,懂点SQL的人都知道,就是增删改查,做业务系统的时候,往往离不开这CURD,最近也是刚刚接触ThinkPHP,ThinkPHP的灵活性是比原生PHP好用的多,下面我就简单的介绍一下我的学 ...
- Cloudera Manager(CentOS)安装介绍
相信通过这篇文章大家都对Cloudera Manager及CDH安装有一个整体的认识 目 录 1 准备工 作.................................... ...
- 7 Reverse Integer(数字反转Easy)
题目意思:int数字反转 考虑:越界问题 class Solution { public: int reverse(int x) { ; while(x){ ans=ans*+x%; x=x/; } ...
- C++学习笔记2——引用
1. int ival = 1; int &refVal = ival; //引用必须初始化,且类型严格匹配 2. int ival = 1; int &refVal = ival; ...
- Linux Makefile多目录的编写
手头一个项目,需要编写项目的makefile 多目录结构: csource/ ├── common│ └── sqlite3├── inc│ ├── curl│ ├── lua│ └─ ...
- asp.net(C#)写SQL语句技巧
/*添加SQL*/string fields = "";string values = "";fields += "xm"; values ...