2. 逻辑视图(Logic view)
逻辑视图主要支持系统的功能需求,它是系统提供给最终用户的服务。在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图,以及这些主要类在服务包和子系统中的组织以及如何将子系统组织为多个层。类图也用于表示类的存在以及类与类之间的相互关系,它是从系统构成的角度来描述当前的系统,即一系列用例实现的构成。
包和子系统的分层模型描述如下图:

软件设计原则中的对象职责用于定义每一层的逻辑任务,我们总结出每层的主要职责和任务如下。
(1)表示层
表示层包含所有表示用户看到的应用程序屏幕的边界类。该层的职责是:
-
提供友好、方便的用户界面
-
收集、预处理用户的输入信息
-
显示数据字段
-
编辑并校验输入数据的合法性
-
格式化处理结果
-
将输入数据向前传递给请求控制层
展示的方式支持浏览器方式、应用程序方式。
(2)请求控制层
请求控制层包括代表驱动应用程序行为的用例管理器的所有控制器类。该层代表从客户机到中间层的边界。该层的职责是:
• 提供系统统一入口
• 接收并分发用户请求
• 将用户请求转换为业务层数据对象 (HttpRequest、XML<——>VO)
• 错误消息格式化、转换
• 管理用户session
• 安全认证、记录日志等通用处理
请求控制层要支持多种通讯协议,即HTTP、RMI等。
(3)应用层
应用层包括应用程序领域内的业务处理类,该层表示业务服务层的边界和门面。该层的职责是:
• 提供业务服务门面
• 管理事务
• 管理缓存
对外提供的类型包括:普通JAVA类(POJO)、EJB、RMI服务、Web Service等。
(4)领域层
领域层包括表示应用程序领域内“事物”的所有实体类,这些实体类驻留在服务器上,并利用数据访问类和基础服务类来协助完成它们的职责。领域层的职责是:
• 管理业务逻辑对象;
• 提供核心业务逻辑实现。
(5)数据访问层
数据访问层位于对象业务层和底层关系型数据库之间,负责将对象映射到关系型数据库中,主要职责是:
• 负责对象的持久化;
• 提供数据访问接口。
(6)基础复用类
包括平台中提供基础服务的类。
在基础服务类中,主要提供了大部份企业应用都需要用到的类库:
• 异常处理
• 日志处理
• 组织结构
• 用户权限
• 数据字典
• 功能模块配置
• 数据访问
本文初步探讨了用例的实现和系统架构视图的之间的关系,我们知道不论是用例实现还是架构设计本身都是一个很大的话题,都可以作更深入的探讨,而如何把二者有机地结合起来, 也是值得我们去思考的问题。