面向对象设计 (2)精选文档.ppt
《面向对象设计 (2)精选文档.ppt》由会员分享,可在线阅读,更多相关《面向对象设计 (2)精选文档.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象设计面向对象设计面向对象设计面向对象设计本讲稿第一页,共八十二页教学目的与要求教学目的与要求掌握架构设计的概念和原则掌握架构设计的概念和原则;掌握常用的架构摸式掌握常用的架构摸式;掌握详细设计原则和设计内容;掌握详细设计原则和设计内容;4.4.了解了解各种设计模式;各种设计模式;2本讲稿第二页,共八十二页教学重点教学重点架构设计的概念和原则架构设计的概念和原则架构设计的概念和原则架构设计的概念和原则;常用的架构摸式常用的架构摸式常用的架构摸式常用的架构摸式;详细设计原则和设计内容详细设计原则和设计内容详细设计原则和设计内容详细设计原则和设计内容;设计模式。设计模式。设计模式。设计模式。
2、教学难点教学难点架构设计的概念架构设计的概念;常用的架构摸式常用的架构摸式;3.详细设计原则和设计内容。详细设计原则和设计内容。3本讲稿第三页,共八十二页10.1 架构设计 一、软件架构与框架一、软件架构与框架一、软件架构与框架一、软件架构与框架(1)什么是软件架构)什么是软件架构软件架构是一种思想,一个系统蓝图,对软件结构组成的规软件架构是一种思想,一个系统蓝图,对软件结构组成的规划和职责设定。一个软件里有处理计算的、处理界面的、处理数划和职责设定。一个软件里有处理计算的、处理界面的、处理数据的、处理业务规则的、处理安全的等许多可逻辑划分出来的部据的、处理业务规则的、处理安全的等许多可逻辑划
3、分出来的部分。软件架构的意义就是要将这些可逻辑划分的部分独立出来,分。软件架构的意义就是要将这些可逻辑划分的部分独立出来,用约定的接口和协议将他们有机的结合在一起,形成职责清晰、用约定的接口和协议将他们有机的结合在一起,形成职责清晰、结构清楚的软件结构。结构清楚的软件结构。软件架构是一个逻辑性的框架描述,它可能并无真正的软件架构是一个逻辑性的框架描述,它可能并无真正的可执行部分。大部分的软件架构都是由一个设计思想,加上可执行部分。大部分的软件架构都是由一个设计思想,加上若干设计模式,在规定一系列的接口规范、传输协议、实现若干设计模式,在规定一系列的接口规范、传输协议、实现标准等文档构成的。标准
4、等文档构成的。4本讲稿第四页,共八十二页10.1 架构设计 软件框架是软件架构的一种实现,是一个半成品。它通常针对软件框架是软件架构的一种实现,是一个半成品。它通常针对一个软件架构当中某一个特定的问题提供解决方案和辅助工具。一个软件架构当中某一个特定的问题提供解决方案和辅助工具。因此,如果说架构是一个逻辑的构成,而框架则是一个可用的半因此,如果说架构是一个逻辑的构成,而框架则是一个可用的半成品,是可执行的。成品,是可执行的。二、软件架构的基本组成二、软件架构的基本组成二、软件架构的基本组成二、软件架构的基本组成一个软件架构应当包括软件层次、每一层次的职责、层次之间一个软件架构应当包括软件层次、
5、每一层次的职责、层次之间的接口、传输协议和标准以及每一层次上所采用的软件框架的接口、传输协议和标准以及每一层次上所采用的软件框架5本讲稿第五页,共八十二页软件架构的内容软件架构的内容 6本讲稿第六页,共八十二页在在RoseRose中,我们可以用包图来描述软件架构。如下图所示,描述了一个由五个层次构成的软件架中,我们可以用包图来描述软件架构。如下图所示,描述了一个由五个层次构成的软件架构。构。7本讲稿第七页,共八十二页10.1 架构设计 三、架构设计原则三、架构设计原则三、架构设计原则三、架构设计原则1.自顶向下原则自顶向下原则2.职能集中原则职能集中原则3.互不交叉原则互不交叉原则8本讲稿第八
6、页,共八十二页 自顶向下分包原则自顶向下分包原则 9本讲稿第九页,共八十二页职能集中原则职能集中原则 10本讲稿第十页,共八十二页增加新类并单独分包增加新类并单独分包 交叉依赖的类单独分包交叉依赖的类单独分包 11本讲稿第十一页,共八十二页10.1 架构设计 四、常用的架构模式四、常用的架构模式四、常用的架构模式四、常用的架构模式1.分层架构模式分层架构模式分层(分层(Layer)模式是最常见的一种架构模式。甚至说分层模式)模式是最常见的一种架构模式。甚至说分层模式是很多架构模式的基础。分层描述的是这样一种架构设计过程:从是很多架构模式的基础。分层描述的是这样一种架构设计过程:从最低级别的抽象
7、开始,称为第最低级别的抽象开始,称为第1层。这是系统的基础。通过将第层。这是系统的基础。通过将第J层层放置在第放置在第J-1层的上面逐步向上完成抽象阶梯,直到到达功能的最高层的上面逐步向上完成抽象阶梯,直到到达功能的最高级别,称为第级别,称为第N层。如图下所示。层。如图下所示。12本讲稿第十二页,共八十二页分层架构模式分层架构模式 13本讲稿第十三页,共八十二页分层构架具有以下优点:分层构架具有以下优点:层次的复用性。为每个层次建立好抽象接口,可以使其在其他环境复用。层次的复用性。为每个层次建立好抽象接口,可以使其在其他环境复用。支持基于抽象程度递增的系统设计,使设计者可以对复杂系统进行分解,
8、支持基于抽象程度递增的系统设计,使设计者可以对复杂系统进行分解,从而使系统更容易模块化。从而使系统更容易模块化。支持功能增强。因为每一层至多和相邻的上下层进行交互,因此功能的改支持功能增强。因为每一层至多和相邻的上下层进行交互,因此功能的改变最多影响相邻的两层。变最多影响相邻的两层。可替换性。独立的层次设计容易被功能相似的模块替换。可替换性。独立的层次设计容易被功能相似的模块替换。分层构架也有一些缺点,主要表现在:分层构架也有一些缺点,主要表现在:效率低。分层结构通常要比单层结构效率低,原因是有时高层过分依赖底层的服务,必效率低。分层结构通常要比单层结构效率低,原因是有时高层过分依赖底层的服务
9、,必须经过许多中间层进行数据传递。须经过许多中间层进行数据传递。增加了一些不必要的工作。增加了一些不必要的工作。改变行为的连锁反应。改变行为的连锁反应。设计者要建立不同合适粒度的抽象层次有一定困难。设计者要建立不同合适粒度的抽象层次有一定困难。常见的分层架构模式有:常见的分层架构模式有:客户端客户端-服务器模型(服务器模型(Client-Server,C/S)。)。三层模型:用户表示层、业务逻辑层、数据层。三层模型:用户表示层、业务逻辑层、数据层。14本讲稿第十四页,共八十二页10.1 架构设计 四、常用的架构模式四、常用的架构模式四、常用的架构模式四、常用的架构模式2.黑板模式黑板模式黑板模
10、式的思想是,有一系列独立的模块,或者说是方案,黑板模式的思想是,有一系列独立的模块,或者说是方案,这些方案能解决部分问题的一部分,这些方案进行协作,使得问这些方案能解决部分问题的一部分,这些方案进行协作,使得问题问题能够最终解决。这就像一群人在一块题问题能够最终解决。这就像一群人在一块黑板前,共同解决一黑板前,共同解决一个问题,根据当前问题解决的程度和状态,不同的人上前到黑板个问题,根据当前问题解决的程度和状态,不同的人上前到黑板上解决他所能解决的部分,这样经过多人的协作,最终能够将问上解决他所能解决的部分,这样经过多人的协作,最终能够将问题解决。这就是题解决。这就是黑板模式这个名字的来历。黑
11、板模式的实现分为黑板模式这个名字的来历。黑板模式的实现分为三个主要的组件:黑板三个主要的组件:黑板(Blackboard),知识源,知识源(KnowledgeSource)和控制和控制(Control)。如图下所示。如图下所示。15本讲稿第十五页,共八十二页黑板模式黑板模式 16本讲稿第十六页,共八十二页10.1 架构设计 四、常用的架构模式四、常用的架构模式四、常用的架构模式四、常用的架构模式3.管道管道/过滤器模式过滤器模式管道管道/过滤器模式构架中的每个构件都有一组输入和输出,过滤器模式构架中的每个构件都有一组输入和输出,构件读入数据流,经过处理产生输出数据。这个过程通过对输构件读入数据
12、流,经过处理产生输出数据。这个过程通过对输入流的变换及增量计算来完成,因此在输入流被完全使用掉之入流的变换及增量计算来完成,因此在输入流被完全使用掉之前,变产生了输出,这样的构件就是过滤器,而构件间的连接前,变产生了输出,这样的构件就是过滤器,而构件间的连接件就像是数据流传输的管道,它将数据从一个过滤器传到另一件就像是数据流传输的管道,它将数据从一个过滤器传到另一个过滤器。其中,过滤器必须是独立的实体,它不能与其他的个过滤器。其中,过滤器必须是独立的实体,它不能与其他的过滤器共享数据。多个过滤器相连,可以形成过滤器链。而每过滤器共享数据。多个过滤器相连,可以形成过滤器链。而每个过滤器功能单一,
13、可以单独修改,链中过滤器的排列顺序可个过滤器功能单一,可以单独修改,链中过滤器的排列顺序可以根据需求进行配置。以根据需求进行配置。17本讲稿第十七页,共八十二页特征:特征:l每个过滤器构件是一个独立的部件,除了输入流和输出流外,每个过滤器构件是一个独立的部件,除了输入流和输出流外,过滤器之间互不影响,因此,过滤器之间不共享任何状态信过滤器之间互不影响,因此,过滤器之间不共享任何状态信息。息。l每个过滤器对其上游或下游连接的过滤器是透明的,它的实每个过滤器对其上游或下游连接的过滤器是透明的,它的实现和使用不对链中的任何过滤器加以限制。如下图所示。现和使用不对链中的任何过滤器加以限制。如下图所示。
14、管道管道/过滤器模式过滤器模式18本讲稿第十八页,共八十二页这种构架具有以下优点:这种构架具有以下优点:可以创建具有良好隐蔽性和高内聚、低耦合的构件。可以创建具有良好隐蔽性和高内聚、低耦合的构件。设计者可以将整个系统的输入设计者可以将整个系统的输入/输出行为看成是多个过滤器行为输出行为看成是多个过滤器行为的简单合成。的简单合成。支持软件重用。支持软件重用。通过添加新的过滤器或换掉旧的过滤器可以方便地维护系统,增通过添加新的过滤器或换掉旧的过滤器可以方便地维护系统,增强现有的系统功能。强现有的系统功能。可以对一些如吞吐量、死锁等问题进行分析。可以对一些如吞吐量、死锁等问题进行分析。支持并发过程。
15、每个过滤器作为一个单独的任务完成,因支持并发过程。每个过滤器作为一个单独的任务完成,因此可与其他任务并行执行,有较高的并行处理效率。此可与其他任务并行执行,有较高的并行处理效率。19本讲稿第十九页,共八十二页10.1 架构设计 四、常用的架构模式四、常用的架构模式四、常用的架构模式四、常用的架构模式4.中介模式中介模式中介模式是构建带有隔离构件的分布式系统,系统通过远程中介模式是构建带有隔离构件的分布式系统,系统通过远程服务调用进行交互。中介构件负责协调通信,包括转发请求、传服务调用进行交互。中介构件负责协调通信,包括转发请求、传送结果和异常等。这样的构架模式并不是一个整体的应用程序,送结果和
16、异常等。这样的构架模式并不是一个整体的应用程序,而是若干个独立的和互操作的构件集合。通过将功能分割成独立而是若干个独立的和互操作的构件集合。通过将功能分割成独立的构件,系统具有可分割性和可扩展性,并具有较大的灵活性、的构件,系统具有可分割性和可扩展性,并具有较大的灵活性、可维护性和可变性。在中介构架中,系统可以添加、移动、交换、可维护性和可变性。在中介构架中,系统可以添加、移动、交换、激活和定位构件服务,可以仅通过对象接口使用服务器中的应用激活和定位构件服务,可以仅通过对象接口使用服务器中的应用程序对象,而不需要要知道对象的细节或其物理位置。程序对象,而不需要要知道对象的细节或其物理位置。20
17、本讲稿第二十页,共八十二页10.1 架构设计 四、常用的架构模式四、常用的架构模式四、常用的架构模式四、常用的架构模式5.代理模式代理模式代理模式由是客户机、服务器、代理程序、桥接、客户代理模式由是客户机、服务器、代理程序、桥接、客户端代理和服务器端代理等构件组成的构架模式。端代理和服务器端代理等构件组成的构架模式。客户机通过代理程序发送请求访问服务器功能。客户机通过代理程序发送请求访问服务器功能。服务器为应用领域提供公共服务,或者向单一应用提供服务器为应用领域提供公共服务,或者向单一应用提供 特定的功能服务。特定的功能服务。代理程序位于客户机和服务器之间,协调客户机和服务器之间的活代理程序位
18、于客户机和服务器之间,协调客户机和服务器之间的活动。动。21本讲稿第二十一页,共八十二页客户机端代理是客户机和代理程序之间的一个层。客户机端代理是客户机和代理程序之间的一个层。桥接是用来隐藏两个代理程序互相操作的细节的可选构件,桥接是用来隐藏两个代理程序互相操作的细节的可选构件,它建立一个所有系统细节封装起来的层,便于系统在异构环境它建立一个所有系统细节封装起来的层,便于系统在异构环境中运行。中运行。通过使用代理模式,应用程序能够简单地通过向合适通过使用代理模式,应用程序能够简单地通过向合适的对象发出消息调用访问分布式服务,而不是把重点放在的对象发出消息调用访问分布式服务,而不是把重点放在低级
19、进程间通信。另外,代理模式结构灵活,允许对对象低级进程间通信。另外,代理模式结构灵活,允许对对象动态改变、添加、删除和重定位。动态改变、添加、删除和重定位。22本讲稿第二十二页,共八十二页10.1 架构设计 四、常用的架构模式四、常用的架构模式四、常用的架构模式四、常用的架构模式6.MVC模式模式MVC是模型是模型-视图视图-控制器控制器(Model-View-Control)的简称,是的简称,是一种流行的系统开发框架。一种流行的系统开发框架。MVC把交互系统的组成分解成模型、把交互系统的组成分解成模型、视图、控制三种部件。如下图所示。视图、控制三种部件。如下图所示。23本讲稿第二十三页,共八
20、十二页MVCMVC模式模式24本讲稿第二十四页,共八十二页模型部件是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽模型部件是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,他独立于具体的界面表象,封装了问题的核心数据、逻辑和功能的计算关系,他独立于具体的界面表达和达和I/O操作。操作。视图部件把表示模型数据及逻辑关系和状态的信息及特定形式展示给用视图部件把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形户。它从模型获得显示信息,对于相同的信息可以有多个不同的显
21、示形式或视图。式或视图。控制部件是处理用户与软件交互操作的,其职责是控制提供模型中任何变化的控制部件是处理用户与软件交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制。模型,进而实现对模型的计算控制。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些果用户通过某个视图的控制器改变了模型的数据,所有其它依
22、赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化模型的变化-传播机制。传播机制。25本讲稿第二十五页,共八十二页MVC的优点表现在以下几个方面:的优点表现在以下几个方面:可以为一个模型在运行时同时建立和使用多个视图。变化可以为一个模型在运行时同时建立和使用多个视图。变化-传播机制传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的可以确保所有相关的视图及时得到
23、模型数据变化,从而使所有关联的视图和控制器做到行为同步。视图和控制器做到行为同步。视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换。据需求动态的打开或关闭、甚至在运行期间进行对象替换。模型的可移植性。因为模型是独立于视图的,所以可以把一个模模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。需要做的只是在新平台上对视图型独立地移植到新的平台工作。需要做的只是在新平台上对视图和控制器进行新的修改。和控制器进行新的修改。潜在的框架结构。可以基于此
24、模型建立应用程序框架,不仅仅是用在设潜在的框架结构。可以基于此模型建立应用程序框架,不仅仅是用在设计界面的设计中。计界面的设计中。26本讲稿第二十六页,共八十二页10.1 架构设计 四、常用的架构模式四、常用的架构模式四、常用的架构模式四、常用的架构模式7.PAC模式模式PAC是表示是表示-抽象抽象-控制控制(Presentation-Abstraction-Control)的简称,它也是从数据模型及界面可视化的处理中的简称,它也是从数据模型及界面可视化的处理中提出的交互式系统构架。提出的交互式系统构架。PAC将用户界面从数据管理中分离将用户界面从数据管理中分离出来,从而降低了部件间的耦合度。
25、如下图所示。出来,从而降低了部件间的耦合度。如下图所示。27本讲稿第二十七页,共八十二页10.1 架构设计 四、常用的架构模式四、常用的架构模式四、常用的架构模式四、常用的架构模式8.反射模式反射模式反射模式是为动态地改变系统结构和行为提供相应机制的架构反射模式是为动态地改变系统结构和行为提供相应机制的架构模式。它使系统维护了自身的信息,并使用这种信息来保持系统的模式。它使系统维护了自身的信息,并使用这种信息来保持系统的可变性和可扩展性。一个反射系统在实现方面处于开放状态,以支可变性和可扩展性。一个反射系统在实现方面处于开放状态,以支持特定的结构和行为。持特定的结构和行为。反射构架由两部分组成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象设计 2精选文档 面向 对象 设计 精选 文档
限制150内