Object-Oriented Analysis and Design Using UML 翻译与学习 (十二)
来源:互联网 发布:linux jdk1.8安装教程 编辑:程序博客网 时间:2024/05/12 11:00
Introducing the Architectural Tiers
介绍架构阶层
//2017年1月1日15:51:15 新年快乐!停了一段时间,最近在给大学的书做图书扫描
目标
完成这个模块(章节),你可以:
1、描述客户端阶层和呈现阶层的概念
2、描述逻辑业务阶层的概念
3、描述集成阶层和资源阶层的概念
4、描述解决模型概念
步骤图
介绍客户端阶层和呈现阶层
客户端阶层和呈现阶层主要包含:
1、控制器组件:
1.1从边界控制输入表单
1.2采取输入合理检查
1.3调用业务逻辑方法
1.4分发视图组件
2、视图组件:
2.1检出视图请求的数据
2.2将视图准备成对接收端合适的格式
2.3添加客户端合理性检查(可选)
//2017年1月1日16:46:18 鼠标有点问题,修一下
边界界面技术
主边界接口类型是:
1、图像用户界面(GUI)
2、网页用户界面(Web UI)
3、机器或设备用户界面(例如,Web Service)
其他边界接口类型:
1、触摸平板
2、直接人工操作
3、摇杆
4、交互式声音识别
5、小键盘
6、命令行
通用应用程序组件
有四种基本的应用程序组件类型:
//2017年1月5日12:55:17 抽了点时间
//2017年2月2日16:45:52 主板坏了,修了一段时间就要过年
//今天想起来写了,有客来就招待客人,没有客人就学习一下
图形用户界面屏幕设计
顾客图形用户界面的组件层级树
图形用户界面事件模型
Java™技术使用 事件-监听 机制:
图形用户界面监听器作为控制器元素
MVC模式
经典的MVC模式,model-view-controller。
MVC将视图和控制器与模型隔离
MVC组件类型
MVC将服务组件和实体组件分到一组,成为单独的组件,成为模型:
MVC模式使用例子
回顾阶层和层的包图
//2017年2月2日18:22:46 吃饭
======================================================================================
浏览Web用户界面
一个Web UI 提供以浏览器为基础的用户界面。所有Web UI都有以下特征:
1、采取少量的大的用户行为(HTTP 请求)
2、一个单独的用例经常打散成多个屏幕(页面,不是指物理屏幕)
3、经常有一个单独的路径观察多个屏幕(页面,不是指物理屏幕)
4、经常只打开一个屏幕(页面,不是指物理屏幕)
Web UI设计
1、一个Web UI 被构建成一个连串的页面。
2、每个页面都有一个UI组件层级树。
3、一个Web UI页面代表用户对领域模型的视角,也代表用户的动作控制。
4、很少同一个页面被多个用例使用
Web页面流程例子
“在线创造一个预定”用例可以被看做一个串Web UI页面:
Web UI事件模型
1、微事件可以被Javascript™技术代码处理
2、宏事件可以被当做HTTP请求处理,其从web浏览器传递到web服务器
WebMVC模式
webMVC模式是基于MVC模式,但是没有模型到视图的更新:
WebMVC模式组件类型
WebMVC模式
Model 2架构使用这些组件:
1、Java servlets 作为控制器去处理HTTP请求
1.1验证HTML表单数据
1.2更新业务模型
1.3选择和分发到下一个视图
2、JavaServer Pages™技术作为视图发送给用户
3、Java技术类(无论本地还是分布式)作为业务服务和实体的模型
回顾阶层和层的包图
======================================================================================
介绍业务阶层
业务阶层主要包括:
1、实体组件
2、服务组件
2.1采取业务规则的验证的行动
2.2采取关于实体的更新的行动
业务阶层可以通过以下
1、本地组件
2、远程组件,例如:
2.1远程方法请求(RMI)
2.2web service服务协议
本地访问服务组件
应用依赖翻转原则
//2017年2月3日23:00:48 不晚了洗洗睡
一个访问远程服务的虚拟版本
使用RMI访问远程服务
RMI使用序列化传递参数
RMI注册(服务)为远程查看保存存根
回顾详细的部署图
概观阶层和层的包图
======================================================================================
浏览资源阶层
资源阶层包括:
1、数据库
2、文件
3、Web Service(这是一种基于xml,通过http传递信息的技术,服务)
4、企业信息系统(EIS)
浏览对象持久
Persistence is “The property of an object by which its existence transcends time and space.”
(Booch OOAD with Apps page 517)
持久化是“一个对象的属性,通过这个属性它的存在可以超越时间和空间”
---- Booch OOAD with Apps 517 页
//好霸气的一段话
一个持久化对象是:
1、一个对象,它存在超越应用的一次单独执行的一段时间。
2、一个对象,它被单独地保存在应用的地址空间中。
持久化问题
有一些持久化问题必须指出:
1、数据保存的类型
2、射到领域模型的数据库模式(文件)
3、集成组件
4、CRUD操作:创建,查找,更新和删除
//2017年2月5日00:13:48 不晚了,突然发现这章还有挺多
//2017年2月26日20:38:23 停了一段时间
为领域模型创建数据库模
定义数据库模一般用两步完成:
1、逻辑上的实体-关系(ER)图包括:
1.1面向对象实体作为表
1.2面向对象实体的属性作为表的字段
1.3面向对象的关联作为表之间的关系
2、物理上的ER图有逻辑上的图和以下构成:
2.1字段的类型
2.2表的索引
2.3数据的完整性约束
把领域模型转化成逻辑上的ER图的策略是:
1、把每个类转化成表
2、声明每个表的主键
3、使用多样性关联去决定ER关联的类型
简化旅馆系统模型
这个例子使用简单的领域模型:
第一步--映射实体到数据库表
为每一个领域模型中的实体创建表
第二步--声明主键
加入主键字段:
第三步--声明一对多关系
使用外键
第四步--说明多对象关系
引入一个解决表:
浏览详细的部署图
浏览阶层和层的包图
浏览集成阶层技术
集成层把实体组件和资源(阶层)分开
需要集成的资源阶层类型有:
1、数据资源
2、企业信息系统(EIS)
3、计算库
4、短消息服务
5、B2B(网页到网页)服务
DAO(设计)模式
数据访问对象(DAO)设计模式:
1、将CRUD操作的实现与应用阶层分开
2、为CRUD操作封装数据存储机制,为每个实体提供一个对应的DAO组件
3、如果数据存储机制很可能改变,那么为DAO组件提供一个抽象工厂
DAO模式:例子1
DAO模式:例子2
DAO(设计)模式
//2017年3月1日23:38:45 早睡早起身体好
浏览详细的部署图
======================================================================================
JAVA™持久化API
java持久化API:
1、对DAO来说是可选的
2、利用从可选的持久化技术来的最好的的理念,(技术)例如 Hibernate, TopLink,
and Java Data Objects (JDO)
3、使用持久化提供者,如Hibernate,TopLink
4、是一个简单的,老的,java对象持久API,是为了对象/关系映射
5、使用实体管理者去管理对象
Java持久化API实体管理者
一个java持久API实体管理者(器)可以被请求:
1、通过保持对象的数据与数据库记录同步来管理数据
2、持久或(使)消失不被管理的对象,这样管理这些对象
3、通过一个对象的主键查找对象,这样从数据库记录创建一个对象
======================================================================================
介绍解决模型
解决模型是基于 开发团队将构建系统的解决方案的代码。
解决模型是通过将设计模型合并到架构模型中创建的。
//2017年3月2日22:33:43 按部就班
//2017年3月3日22:15:39 昨天保存时卡了一下,还没写完就发表了
浏览为GUI应用使用的解决模型
GUI应用使用标准的一组设计组件
创建预定(房间)用例的一个完整的设计模型
创建预定(房间)用例的一个完整的解决模型
//2017年3月3日23:09:59 实际上就是前面几幅图的组合
浏览Web用户界面应用的解决方案
web应用将边界组件分为两个独立组件:视图和控制器
创建预定用例的一个完整的设计模型
在线创建预定用例的一个完整的解决模型
总结
1、客户端阶层和呈现阶层包括边界的视图组件和控制器组件
2、业务阶层包括业务的服务组件和实体组件
3、集成阶层包括把业务实体从资源总分开的组件
4、资源阶层包括一个或多个数据源,例如 关系型数据库(RDBMS),面向对象数据库( OODBMS),企业信息系统( EIS),
Web服务(Web services)或者文件。
5、解决模型提供了一个可以通过代码实现的软件系统的视角。
6、解决模型是通过将设计模型合并到架构模型中实现的。
//2017年3月3日23:55:47 这张终于搞完了,遇到困难把它当成歌来唱
//另外,鄙人从事软件开发,英语过6级,求兼职
//联系我,邮箱:bourne_w@sina.com
交个朋友吧
- Object-Oriented Analysis and Design Using UML 翻译与学习 (十二)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (目录)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (序)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (一)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (二)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (三)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (四)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (五)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (六)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (七)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (八)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (九)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (十)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (十三)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (十四)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (十五)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (十六)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (M-A)
- 分布式服务框架--dubbo+zookpeer
- 【Linux系统编程应用】 Linux输入子系统(二)
- hive优化之——控制hive任务中的map数和reduce
- 机器学习算法中的假设函数与损失函数以及梯度
- CoreBluetooth:baseK,中心模式,外设模式流程,iBeacon
- Object-Oriented Analysis and Design Using UML 翻译与学习 (十二)
- 集合框架_用户登录注册案例分析图解
- Spring 通过Autowired 和 Context.getBean()方式拿到的不是同一个Bean
- MySQL 中间件汇总比较
- (一)搭建python3.4环境之ubuntu14.04下安装多版本Python(亲测有效)
- LevelDB源码阅读(2)
- 机器学习入门路径
- 1005. Spell It Right
- (二)C#之集合与索引器