Object-Oriented Analysis and Design Using UML 翻译与学习 (十二)

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 这张终于搞完了,遇到困难把它当成歌来唱
//联系我,邮箱:bourne_w@sina.com

交个朋友吧

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值