第7章 面向对象设计.ppt
《第7章 面向对象设计.ppt》由会员分享,可在线阅读,更多相关《第7章 面向对象设计.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章 面向对象设计子系统分解子系统分解问题域设计问题域设计界面层设计界面层设计数据层设计数据层设计7.1 子系统分解子系统分解的实质是进行体系结构设计子系统分解的实质是进行体系结构设计;对于对于传统传统的软件,通常就是的软件,通常就是功能模块功能模块的分解;的分解;对于面向对象系统,通常在水平方向和垂直方对于面向对象系统,通常在水平方向和垂直方向进行分解。向进行分解。7.1 子系统分解水平方向的分解水平方向的分解水平方向的分解即是水平方向的分解即是通常所说的通常所说的分层分层。一种比较普遍一种比较普遍的的做法做法是采用三层体系结构,是采用三层体系结构,即即表示层、业务逻辑表示层、业务逻辑层及
2、数据层层及数据层。7.1 子系统分解各层的职责各层的职责表示层的职责表示层的职责 表示层的主要职责是向用户表示层的主要职责是向用户显示显示信息,并将从信息,并将从用户那里获取的信息解释成业务逻辑层或数据用户那里获取的信息解释成业务逻辑层或数据源层上的各种动作。源层上的各种动作。当前的用户界面往往是功能完善的图形用户界当前的用户界面往往是功能完善的图形用户界面面(GUIGUI)或者是基于)或者是基于HTMLHTML的浏览器界面。的浏览器界面。7.1 子系统分解各层的职责各层的职责业务逻辑层的职责业务逻辑层的职责 业务逻辑层是整个系统的核心。包括根据输入业务逻辑层是整个系统的核心。包括根据输入数据
3、或已有数据进行数据或已有数据进行计算计算,对从表示层输入的,对从表示层输入的数据进行验证,以及根据从表示层接收的命令数据进行验证,以及根据从表示层接收的命令来确定调用哪些操作。来确定调用哪些操作。7.1 子系统分解各层的职责各层的职责数据访问层的职责数据访问层的职责 数据访问层的主要职责是数据访问层的主要职责是与数据源交互与数据源交互,这里,这里的数据源可能是数据文件、数据库、消息系统的数据源可能是数据文件、数据库、消息系统或其他应用系统。或其他应用系统。对于大多数企业应用来说,对于大多数企业应用来说,最主要最主要的数据源就的数据源就是数据库,它的主要职责是存储是数据库,它的主要职责是存储持久
4、持久数据。数据。7.1 子系统分解垂直方向的分解垂直方向的分解垂直方向的分解与具体的应用领域及应用需求垂直方向的分解与具体的应用领域及应用需求有关;有关;通常根据主题将系统分解成若干个部分,每一通常根据主题将系统分解成若干个部分,每一部分又可分解为若干个子系统或类,每个子系部分又可分解为若干个子系统或类,每个子系统还可以由更小的子系统或类组成。统还可以由更小的子系统或类组成。初始子系统的分解可以初始子系统的分解可以从功能性需求中从功能性需求中导出,导出,往往是往往是将功能相关的类进行分组,进而明确标将功能相关的类进行分组,进而明确标识出子系统识出子系统。7.1 子系统分解校内书店管理系统体系结
5、构校内书店管理系统体系结构7.2 问题域设计面向对象面向对象设计设计是以面向对象是以面向对象分析分析模型为基础的。模型为基础的。面向对象分析所得到的问题域模型可以直接应面向对象分析所得到的问题域模型可以直接应用于系统问题域部分的设计。用于系统问题域部分的设计。7.2 问题域设计对分析类图进行调整与细化对分析类图进行调整与细化 在在设计阶段设计阶段,可能需求发生了变化,也可能是,可能需求发生了变化,也可能是分析与设计者对问题本身有了更进一步的理解分析与设计者对问题本身有了更进一步的理解等原因,一般需要对系统分析的结果进行等原因,一般需要对系统分析的结果进行改进改进和增补。和增补。7.2 问题域设
6、计对分析类图进行调整与细化对分析类图进行调整与细化 对类进行调整对类进行调整:考虑校内书店管理系统的初始类图考虑校内书店管理系统的初始类图可以将顾客(可以将顾客(CustomerCustomer)分为学生()分为学生(StudentStudent)、)、教师(教师(TeacherTeacher)、校外顾客()、校外顾客(OtherOther),学生),学生和教师享有不同的折扣,校外顾客租书则需要和教师享有不同的折扣,校外顾客租书则需要缴纳押金。缴纳押金。租约(租约(LeaseLease)分为日租约()分为日租约(DailyLeaseDailyLease)、本)、本租约(租约(BookLease
7、BookLease)两种。)两种。7.2 问题域设计对分析类图进行调整与细化对分析类图进行调整与细化补充类的属性和方法补充类的属性和方法 例如,由于标题相同的书可以有多本,为了进行区分,例如,由于标题相同的书可以有多本,为了进行区分,对于图书(对于图书(BookBook)类应增加书号()类应增加书号(bookNobookNo)属性,可以)属性,可以使用书本身的使用书本身的ISBNISBN号再加顺序号作为书号。号再加顺序号作为书号。书店可以增加营业时间(书店可以增加营业时间(openopen)和关门时间()和关门时间(closeclose)。)。另外,根据用例及顺序图来定义类的方法,使得用例图、
8、另外,根据用例及顺序图来定义类的方法,使得用例图、类图及顺序图保持一致性。类图及顺序图保持一致性。7.2 问题域设计对分对分析类析类图进图进行调行调整与整与细化细化7.2 问题域设计调整调整类图类图 7.2 问题域设计将对象分组归入子系统将对象分组归入子系统 将对象分组归入子系统的规则将对象分组归入子系统的规则:将在同一个用例中所明确的对象归入同一个子将在同一个用例中所明确的对象归入同一个子系统;系统;尽量尽量减少跨越减少跨越子系统边界的关联数目;子系统边界的关联数目;同一个子系统中的所有对象应该是同一个子系统中的所有对象应该是功能相关功能相关的。的。7.2 问题域设计将对象分组归入子系统将对
9、象分组归入子系统 根据上面的规则,可以将根据上面的规则,可以将BookStoreBookStore、BookshelfBookshelf及及BookBook三个类归入图书管理子系统;三个类归入图书管理子系统;将将CustomerCustomer、StudentStudent、TeacherTeacher和和OtherOther四个类四个类归入顾客管理子系统;归入顾客管理子系统;将将LeaseLease、DailyLeaseDailyLease及及BookLeaseBookLease三个类归入三个类归入租书管理子系统。租书管理子系统。7.2 问题域设计增加控制类增加控制类 处理业务逻辑的常见方法
10、是在底层的业务逻辑处理业务逻辑的常见方法是在底层的业务逻辑模型之上增加控制类。模型之上增加控制类。表示层与业务逻辑层的交互完全通过控制类。表示层与业务逻辑层的交互完全通过控制类。在最简单的情况下,可以根据用例来组织控制在最简单的情况下,可以根据用例来组织控制类。类。7.2 问题域设计增加控制类增加控制类 例如,在校内书店管理系统中,针对三个子系例如,在校内书店管理系统中,针对三个子系统可以增加三个控制类:统可以增加三个控制类:图书管理图书管理(BookManagementBookManagement)顾客管理顾客管理(CustomerManagementCustomerManagement)租
11、书管理租书管理(LeaseManagementLeaseManagement)每个类针对每个用例提供相应的方法。每个类针对每个用例提供相应的方法。7.2 问题域设计增加控制类增加控制类 7.3 界面层设计界面设计方法和原则界面设计方法和原则用户操纵控制用户操纵控制 减轻用户的记忆负担减轻用户的记忆负担保持界面一致保持界面一致 7.3 界面层设计书店管理系统界面设计方案书店管理系统界面设计方案 界面设计时考虑了以下几个方面:界面设计时考虑了以下几个方面:界面简洁,功能访问便捷,方便用户快速进入界面简洁,功能访问便捷,方便用户快速进入所需的业务处理界面;所需的业务处理界面;界面布局保持界面布局保持
12、WindowsWindows系统界面风格,符合用户系统界面风格,符合用户使用习惯,例如通过标题栏缩放和关闭应用系使用习惯,例如通过标题栏缩放和关闭应用系统,将菜单栏放置在标题栏下面;统,将菜单栏放置在标题栏下面;设计快捷键,可通过键盘方式快速进入业务处设计快捷键,可通过键盘方式快速进入业务处理界面。理界面。7.3 界面层设计主界面设计方案主界面设计方案 7.3 界面层设计图书管理界面设计图书管理界面设计7.4 数据层设计数据库设计数据库设计:将将UMLUML类图映射到关系数据库类图映射到关系数据库一个普通的类可以映射为一个表或多个表一个普通的类可以映射为一个表或多个表当分解为多个表时,可以采用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 面向对象设计 面向 对象 设计
限制150内