面向对象系统设计课件.ppt
《面向对象系统设计课件.ppt》由会员分享,可在线阅读,更多相关《面向对象系统设计课件.ppt(154页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于面向对象系统设关于面向对象系统设计计第1页,此课件共154页哦本章主要内容本章主要内容l11.1软件架构的设计软件架构的设计l11.2高层结构设计高层结构设计l11.3面向对象设计方法面向对象设计方法l11.4对象持久化与数据库对象持久化与数据库l11.5设计原则设计原则l11.6设计模式设计模式第2页,此课件共154页哦11.1软件架构的设计软件架构的设计l11.1.1什么是软件架构什么是软件架构l11.1.2多层应用架构设计多层应用架构设计l11.1.3软件框架软件框架第3页,此课件共154页哦1.架构的概念架构的概念l建筑、文学、音乐、机械、电子、计算机软硬件等领域建筑、文学、音乐、
2、机械、电子、计算机软硬件等领域都会使用都会使用“架构(架构(architecture)”这一概念。架构都提这一概念。架构都提供了系统最高层的设计方案,以确保建筑、小说、乐曲、供了系统最高层的设计方案,以确保建筑、小说、乐曲、设备、计算机等系统满足期望的特性。设备、计算机等系统满足期望的特性。好的建筑应该美观、坚固、实用好的建筑应该美观、坚固、实用好的计算机应用系统应该实用、好维护、可靠、性价比高好的计算机应用系统应该实用、好维护、可靠、性价比高l架构师(架构师(architect)需要发现特定系统的最重要的关注点,)需要发现特定系统的最重要的关注点,设计某种折衷的总体方案以满足关注点。设计某种
3、折衷的总体方案以满足关注点。l架构包含系统的一组基本结构(架构包含系统的一组基本结构(structure),每种结构),每种结构都有各种类型的部件(都有各种类型的部件(component)及其关系构成,架构)及其关系构成,架构描述了这些部件的组合、相互调用参照、通信以及其他动描述了这些部件的组合、相互调用参照、通信以及其他动态交互。态交互。第4页,此课件共154页哦架构和结构的关系架构和结构的关系l架构是抽象无形的,体现高层全局的决策,就像文章的架构是抽象无形的,体现高层全局的决策,就像文章的中心思想和提纲。中心思想和提纲。l结构是具体有形的,体现决策的贯彻,如同文章的每个段落结构是具体有形的
4、,体现决策的贯彻,如同文章的每个段落及细节描述。及细节描述。l架构包含了结构的初步描述和决策。架构包含了结构的初步描述和决策。l相同架构的系统,具体结构允许有差异。相同架构的系统,具体结构允许有差异。第5页,此课件共154页哦使用桥梁来比喻使用桥梁来比喻l桥梁的架构设计可以使用草图描述,架构决定了桥梁的基本结桥梁的架构设计可以使用草图描述,架构决定了桥梁的基本结构部件。构部件。桥梁有梁式桥、拱桥、斜拉桥、悬索桥等架构桥梁有梁式桥、拱桥、斜拉桥、悬索桥等架构斜拉桥的基本结构:斜拉桥的基本结构:l索塔索塔l主梁主梁l斜拉索斜拉索第6页,此课件共154页哦使用桥梁来比喻使用桥梁来比喻l桥梁的结构设计
5、则需要考虑各种部件的数量、材料、重量、桥梁的结构设计则需要考虑各种部件的数量、材料、重量、形态等方面,是可以施工的严谨的结构图。形态等方面,是可以施工的严谨的结构图。架构是抽象的,对结构进行了设计和限定,每座桥的结构是架构是抽象的,对结构进行了设计和限定,每座桥的结构是具体有形的、元素组合千变万化具体有形的、元素组合千变万化第7页,此课件共154页哦2.软件架构软件架构l软件架构(软件架构(softwarearchitecture)的定义没有统一的版)的定义没有统一的版本,一般认为:一个应用程序或计算系统的软件架构是一个本,一般认为:一个应用程序或计算系统的软件架构是一个或一组结构,它包含组成
6、系统的软件元素、这些元素对外可或一组结构,它包含组成系统的软件元素、这些元素对外可见的性质以及它们之间的关系。对外可见的性质指软件元素见的性质以及它们之间的关系。对外可见的性质指软件元素能够提供的服务、性能特征、错误处理、共享资源的用法等。能够提供的服务、性能特征、错误处理、共享资源的用法等。软件的一个结构元素可能是一个子系统、构件、进程、库、数据库、软件的一个结构元素可能是一个子系统、构件、进程、库、数据库、计算结点、遗留系统等等。计算结点、遗留系统等等。l软件架构是最高层次的系统分解,它不会囊括所有的结构软件架构是最高层次的系统分解,它不会囊括所有的结构和行为的定义,它只关注那些被认为是重
7、要的元素。和行为的定义,它只关注那些被认为是重要的元素。n架构难以更改,一旦修改,意味着整个系统重建,而结构修架构难以更改,一旦修改,意味着整个系统重建,而结构修改只影响局部。改只影响局部。第8页,此课件共154页哦3.软件架构模式软件架构模式l大部分的架构来源于有相似关注点的系统的总结和抽象,大部分的架构来源于有相似关注点的系统的总结和抽象,这些相似性被描述成某种特殊模式的架构风格,也就是架这些相似性被描述成某种特殊模式的架构风格,也就是架构模式(构模式(architecturalpattern)。)。l一种架构模式就是一个经验秘籍,架构师在设计不同系一种架构模式就是一个经验秘籍,架构师在设
8、计不同系统时可以重复使用这些先进经验。统时可以重复使用这些先进经验。图图10.110.1就是桥梁的四种常用架构模式。就是桥梁的四种常用架构模式。中国建筑有一种攒尖模式,被广泛应用在古典园林中,如三中国建筑有一种攒尖模式,被广泛应用在古典园林中,如三角、四角、五角、八角等亭子,宫殿、坛庙大量应用。角、四角、五角、八角等亭子,宫殿、坛庙大量应用。第9页,此课件共154页哦软件架构模式软件架构模式l软件架构模式就是可重复使用的软件结构风格软件架构模式就是可重复使用的软件结构风格。第10页,此课件共154页哦10.1.2多层应用架构模式多层应用架构模式l分层的含义分层的含义l三层三层l多层多层lMVC
9、架构模式架构模式l多层的物理配置多层的物理配置第11页,此课件共154页哦1.分层的含义分层的含义l基于组件的软件开发,组件根据横向位置划分为多层基于组件的软件开发,组件根据横向位置划分为多层(N-Layer):):下层组件负责对上层组件提供服务下层组件负责对上层组件提供服务上层组件可以使用下层组件定义的服务,但下层组件对上层组上层组件可以使用下层组件定义的服务,但下层组件对上层组件一无所知。件一无所知。层与层之间通常是不透明的,每一层都具有独立的职责层与层之间通常是不透明的,每一层都具有独立的职责 不同层的软件构件可以分布在多台机器上,也可以部署在同不同层的软件构件可以分布在多台机器上,也可
10、以部署在同一台机器上,形成物理上的多层(一台机器上,形成物理上的多层(N-TierN-Tier)第12页,此课件共154页哦理解分层概念理解分层概念l层次模型的理念就是将整个任务横向划分为不同级别,而层次模型的理念就是将整个任务横向划分为不同级别,而不是纵向不是纵向比如学校管理纵向划分有教学、人事、财务、后勤等任务比如学校管理纵向划分有教学、人事、财务、后勤等任务横向划分有主管校长(高层)、部门领导(中层)、普通员工横向划分有主管校长(高层)、部门领导(中层)、普通员工(基层),或处、科、室(基层),或处、科、室l计算机程序的组织结构也可以有纵向划分和横向划分计算机程序的组织结构也可以有纵向划
11、分和横向划分纵向:教师管理功能、学生管理功能、课程管理功能纵向:教师管理功能、学生管理功能、课程管理功能横向:界面窗体、业务逻辑类、数据访问类横向:界面窗体、业务逻辑类、数据访问类第13页,此课件共154页哦理解分层概念理解分层概念l自从自从C/S出现之后,软件就被分层了:出现之后,软件就被分层了:ClientClient端的软件完成前台任务,端的软件完成前台任务,ServerServer端的软件完成后台任务端的软件完成后台任务(一般是(一般是DB ServerDB Server););ClientClient使用使用ServerServer端的服务,依赖于端的服务,依赖于ServerServ
12、er端。端。l自从自从Internet出现之后,软件进一步分层:出现之后,软件进一步分层:ClientClient端的软件(端的软件(IEIE浏览器)完成输入输出任务,浏览器)完成输入输出任务,Web ServerWeb Server上的程序提供业务逻辑处理,后台上的程序提供业务逻辑处理,后台DB ServerDB Server完成数据的存取。完成数据的存取。lC/S常被称为传统的两层,常被称为传统的两层,B/S称为三层。称为三层。l本书的分层将不包含有关系统软件(屏蔽如本书的分层将不包含有关系统软件(屏蔽如IE、DBMS等内等内容),仅讨论应用系统本身的设计,即应用架构设计。容),仅讨论应用
13、系统本身的设计,即应用架构设计。第14页,此课件共154页哦2.三个基本层次三个基本层次l应用应用软件内部也可以进行多层的划分。软件内部也可以进行多层的划分。l比如一个用户注册程序可以划分为两层:比如一个用户注册程序可以划分为两层:Register.aspx/Register.aspx.csRegister.aspx/Register.aspx.cs窗体:负责界面数据的输窗体:负责界面数据的输入和格式检验,结果的输出等。入和格式检验,结果的输出等。PersonPerson类:负责数据库访问和注册规则检查等。类:负责数据库访问和注册规则检查等。从应用层面上看,如果整个应用软件都是采用这种方式编程
14、(如从应用层面上看,如果整个应用软件都是采用这种方式编程(如订单处理由订单处理由PlaceOrder.aspxPlaceOrder.aspx窗体负责界面交互,由窗体负责界面交互,由OrderOrder、ProductProduct等类负责数据库访问和订单金额计算等业务逻辑处理),那等类负责数据库访问和订单金额计算等业务逻辑处理),那么称之为两层的应用架构。么称之为两层的应用架构。l可以有两层、三层、四层等不同分层模式。可以有两层、三层、四层等不同分层模式。Register.aspx/Register.aspx.csRegister.aspx/Register.aspx.cs窗体窗体Person
15、BllPersonBll类:负责注册规则检查等业务逻辑。类:负责注册规则检查等业务逻辑。PersonDalPersonDal类:负责数据库访问。类:负责数据库访问。第15页,此课件共154页哦传统的传统的C/S应用程序应用程序l界面窗口程序中包含所有的内容,如输入输出、界面界面窗口程序中包含所有的内容,如输入输出、界面逻辑控制、业务逻辑运算等。逻辑控制、业务逻辑运算等。l系统架构是两层,应用架构没有分层。系统架构是两层,应用架构没有分层。数据库数据库第16页,此课件共154页哦经典的三层架构经典的三层架构数据库数据库借还书组件借还书组件读者管理组件读者管理组件表示层(表示层(UI)业务逻辑层(
16、业务逻辑层(BLL)数据访问层(数据访问层(DAL)数据库访问组件数据库访问组件第17页,此课件共154页哦经典的三层架构经典的三层架构1.表现层:处理用户和信息系统之间的交互。表现层:处理用户和信息系统之间的交互。可以是简单的命令行窗口,也可以功能完善的图形用户界面可以是简单的命令行窗口,也可以功能完善的图形用户界面(胖客户端程序),如基于(胖客户端程序),如基于HTMLHTML的浏览器界面(瘦客户端程序)的浏览器界面(瘦客户端程序),也可以是手机界面。,也可以是手机界面。2.业务逻辑层:也称为领域层或应用层,是信息系统所有和业务逻辑层:也称为领域层或应用层,是信息系统所有和领域相关的工作。
17、领域相关的工作。如根据输入数据或已有数据进行计算,可以是类库或如根据输入数据或已有数据进行计算,可以是类库或WebWeb服务。依服务。依赖于数据访问层获取数据或保存数据。赖于数据访问层获取数据或保存数据。3.数据访问层:一般指与数据库的交互,主要责任是数据库数据访问层:一般指与数据库的交互,主要责任是数据库记录的存取。记录的存取。如组件中包含专门的数据访问类,或每个表对应一个数据访问如组件中包含专门的数据访问类,或每个表对应一个数据访问类类第18页,此课件共154页哦3.扩展的五层架构扩展的五层架构1.表现层:等同于三层中的表现层。表现层:等同于三层中的表现层。2.控制层控制层/中介层:是表现
18、层和领域层的中介层,也称应用控制器。中介层:是表现层和领域层的中介层,也称应用控制器。主要表示业务逻辑中的工作流,一般针对于用例的事件流控制。此外还主要表示业务逻辑中的工作流,一般针对于用例的事件流控制。此外还负责会话状态、数据的合成或分解等事务。负责会话状态、数据的合成或分解等事务。3.领域层:业务逻辑中的领域类的集合,不包含复杂工作领域层:业务逻辑中的领域类的集合,不包含复杂工作流。流。4.数据映射层:负责将基于对象的领域层数据映射到数据库关系数据映射层:负责将基于对象的领域层数据映射到数据库关系表中的记录。也称为数据持久层,可自行开发或采用持久化框表中的记录。也称为数据持久层,可自行开发
19、或采用持久化框架。架。5.数据访问层:负责数据库表的增删改查等操作。持久化数据访问层:负责数据库表的增删改查等操作。持久化框架中包含该层组件。框架中包含该层组件。第19页,此课件共154页哦4.MVC架构模式架构模式l模型(模型(Model)代表数据,使用对象及其属性实现。代表数据,使用对象及其属性实现。l控制器(控制器(Controller)是模型与视图的联系纽带,客户的请求由控制器处理,它根据是模型与视图的联系纽带,客户的请求由控制器处理,它根据客户的请求调用模型的方法,完成数据更新,然后调用视图的客户的请求调用模型的方法,完成数据更新,然后调用视图的方法将响应结果展示给客户。相应的,模型
20、的更新与修改将通方法将响应结果展示给客户。相应的,模型的更新与修改将通过控制器通知视图,保持视图与模型的一致性过控制器通知视图,保持视图与模型的一致性l视图(视图(View)是模型的外在表现形式,视图可以直接访问模型;查询数据信是模型的外在表现形式,视图可以直接访问模型;查询数据信息,当模型中数据发生变化时,它会通知视图刷新界面,显示息,当模型中数据发生变化时,它会通知视图刷新界面,显示更新后的数据。更新后的数据。第20页,此课件共154页哦MVC架构示意图架构示意图lMVC模式和三层模式有共同特点(业务逻辑、数据和表模式和三层模式有共同特点(业务逻辑、数据和表示的分离),但不完全遵守分层约定
21、。示的分离),但不完全遵守分层约定。第21页,此课件共154页哦MVC架构模式工作流程架构模式工作流程控制器对象负责页面转向,控制器对象负责页面转向,并传递页面数据并传递页面数据第22页,此课件共154页哦5.多层的物理配置多层的物理配置l由于应用软件封装成不同层次的独立组件,这给软件部由于应用软件封装成不同层次的独立组件,这给软件部署带来了灵活性:署带来了灵活性:物理一层:所有应用软件的组件都安装配置在一台机器上。比如全部物理一层:所有应用软件的组件都安装配置在一台机器上。比如全部WebWeb程序、程序、DBMSDBMS都在都在WebWeb服务器上。服务器上。物理两层:应用软件的组件配置在两
22、台机器上,比如一部分物理两层:应用软件的组件配置在两台机器上,比如一部分安装在客户端,另一部分配置在应用服务器上。安装在客户端,另一部分配置在应用服务器上。物理多层:客户端、一台或多台应用服务器、数据库服务器,即多台物理多层:客户端、一台或多台应用服务器、数据库服务器,即多台服务器的方式,这是分布式结构的一种形式。服务器的方式,这是分布式结构的一种形式。第23页,此课件共154页哦多层体系结构的优势多层体系结构的优势l客户对数据的访问通过中间层进行了隔离,数据库的安全性客户对数据的访问通过中间层进行了隔离,数据库的安全性提高了。提高了。l应用程序分布部署在多个物理节点上成为可能,从而增强了应用
23、程序分布部署在多个物理节点上成为可能,从而增强了处理大量的用户负载或计算任务的能力,系统可靠性和响应处理大量的用户负载或计算任务的能力,系统可靠性和响应速度得到了提高。速度得到了提高。l业务逻辑处于不同的中间服务器,当业务规则变化后,客户业务逻辑处于不同的中间服务器,当业务规则变化后,客户端程序基本不做改动,当组件接口不变时,某一层的改动不端程序基本不做改动,当组件接口不变时,某一层的改动不会影响其它层,这也意味着更好的重用和可维护性(如从窗会影响其它层,这也意味着更好的重用和可维护性(如从窗口界面变更到口界面变更到Web界面)。界面)。l将不同层的开发任务在开发者之间适当地分配(如一些将不同
24、层的开发任务在开发者之间适当地分配(如一些人专注页面表现,另一些人专注于业务逻辑),有效地人专注页面表现,另一些人专注于业务逻辑),有效地利用开发人员的专长和开发技巧,并且能够提高并行开利用开发人员的专长和开发技巧,并且能够提高并行开发能力。发能力。第24页,此课件共154页哦11.1.3软件框架软件框架l“不要重复发明轮子不要重复发明轮子”l软件复用:软件复用:从代码角度(开发态)看有子过程、函数、类等从代码角度(开发态)看有子过程、函数、类等从部署角度(运行态)看有类库、从部署角度(运行态)看有类库、WebWeb服务等二进制可执行组件、服务等二进制可执行组件、中间件和平台中间件和平台l架构
25、模式同样可以复用,当架构模式的复用形式不仅仅架构模式同样可以复用,当架构模式的复用形式不仅仅停留在逻辑层面,而以物理的二进制组件的方式提供重停留在逻辑层面,而以物理的二进制组件的方式提供重用时,就产生了框架。用时,就产生了框架。第25页,此课件共154页哦1.软件框架的概念软件框架的概念l软件框架(软件框架(softwareframework)是对整个或部分系统)是对整个或部分系统可重用的可重用的设计和实现设计和实现。l框架可以选择对某种架构模式的基本结构和接口机制进行编框架可以选择对某种架构模式的基本结构和接口机制进行编程实现,不仅封装该架构模式的基本元素对外提供类库,还程实现,不仅封装该架
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 系统 设计 课件
限制150内