面向对象的设计_第1页
面向对象的设计_第2页
面向对象的设计_第3页
面向对象的设计_第4页
面向对象的设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、概而言之,面向对象的设计(OOD)就是运用面向对象方法进行系统设计;但不同时期有不同内容及特点。(一)早期的(一)早期的OODOOD(八十年代至九十年代初)(八十年代至九十年代初)(二)现今(二)现今(9090年代)的年代)的OODOOD(一)早期的(一)早期的OOD(八十年代至九十年代初)(八十年代至九十年代初)G. Booch 1982 年发表“Object-Oriented Design” ,首次称“面向对象的设计”。1986 年发表“Object-Oriented Development”较完整地阐述了OOD思想。R. J. Abbott 1983年提出正文分析方法(用规范的英语描述对

2、一个问题的解释,然后从描述中提取对象及其特征。)1986年后,相继出现了一批(早期的)OOD方法。(一)早期的(一)早期的OODOOD(八十年代至九十年代初)(八十年代至九十年代初)Booch86Object-Oriented Development(面向对象的开发)GOODGeneral Object-Oriented Development(通用面向对象的开发)HOODHierarchical Object-Oriented Design(层次式面向对象的设计)OOSDObject-Oriented Structured Design(面向对象的结构设计)早期的OODOOD方法(二)现今(

3、二)现今(9090年代)的年代)的OODOOD面向对象的设计(OOD)就在是OOA模型基础上运用面向对象方法进行系统设计,目标是产生一个符合具体实现条件的OOD模型。OOD的特点:的特点:1. 以面向对象的分析为基础,一般不依赖结构化分析。2. 与相应的OOA方法共同构成一种OOA&D方法体系。OOA和OOD采用一致的概念与原则,但属于软件生命周期的不同阶段,有不同的目标及策略。3. 较全面地体现面向对象方法的概念与原则。4. 大多数方法独立于编程语言,通过面向对象的分析与设计所得到的系统模型可以由不同的编程语言实现。(一)(一)OOAOOA和和OODOOD的关系的关系(二)(二)OO

4、DOOD的基本思想的基本思想(三)(三)OODOOD模型框架模型框架(四)(四)OODOOD过程过程(一)(一)OOAOOA和和OODOOD的关系的关系概念:运用与OOA相同的概念(类、对象、属性、操作、封装、继承、消息、关联、聚合、多态等等)表示法:采用与OOA一致的表示法传统方法分析与设计之间的鸿沟面向对象的分析与设计之间不存在鸿沟分析设计数据流图(DFD)模块结构图(MSD)实体-关系图(ERD)OOAOOD类图类图一致的概念一致的表示法(二)(二) OOD OOD的基本思想的基本思想以OOA模型为基础,继续运用面向对象的概念与原则,针对具体的实现条件进行系统设计。以平台无关的OOA模型

5、为基础,按实现平台进行必要的调整,作为OOD模型的核心部分,即问题域部分;针对实现平台的三个主要方面,增补三个平台相关的外围部分,尽可能隔离实现条件对核心部分的影响,构成完整的OOD模型。(三)(三)OODOOD模型框架模型框架(四)(四)OODOOD过程过程逐个设计OOD模型的四个部分:问题域部分的设计人机交互部分的设计控制驱动部分的设计数据接口部分的设计不强调次序每个部分均采用与OOA一致的概念、表示法及活动,但具有自己独特的策略(一)(一)单一职责原则单一职责原则(二)(二)开放封闭原则开放封闭原则(三)(三)依赖倒置原则依赖倒置原则(四)(四)接口隔离原则接口隔离原则(五)(五)Lis

6、kov替换原则替换原则(一)(一)单一职责原则单一职责原则对于单一职责原则,其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。通常意义下的单一职责,就是指只有一种单一功能,不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因。(二)(二)开放封闭原则开放封闭原则对于开放封闭原则,它是面向对象所有原则的核心,软件设计说到底追求的目标就是封装变化、降低耦合,而开放封闭原则就是这一目标的最直接体现。开放封闭原则,其核心思想是:软件实体应该是可扩展的,而不可修改的

7、。也就是,对扩展开放,对修改封闭的。实现开开放封闭原则的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定。让类依赖于固定的抽象,所以修改就是封闭的;而通过面向对象的继承和多态机制,又可以实现对抽象类的继承,通过覆写其方法来改变固有行为,实现新的拓展方法,所以就是开放的。(二)(二)开放封闭原则开放封闭原则开放封闭原则主要体现在两个方面:一、对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。二、对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对其进行任何尝试的修改。(三)(三)依赖倒置原则依赖倒置原则对于依赖倒置原则,其核心思想是:依赖于抽象。具

8、体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。当两个模块之间存在紧密的耦合关系时,最好的方法就是分离接口和实现:在依赖之间定义一个抽象的接口使得高层模块调用接口,而底层模块实现接口的定义,以此来有效控制耦合关系,达到依赖于抽象的设计目标。抽象的稳定性决定了系统的稳定性,因为抽象是不变的,依赖于抽象是面向对象设计的精髓,也是依赖倒置原则的核心。(四)(四)接口隔离原则接口隔离原则对于接口隔离原则,其核心思想是:使用多个小的专门的接口,而不要使用一个大的总接口。具体而言,接口隔离原则体现在:接口应该是内聚的,应该避免“胖”接口。一个类对另外一个类的依赖应

9、该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染。接口有效地将细节和抽象隔离,体现了对抽象编程的一切好处,接口隔离强调接口的单一性,而胖接口存在明显的弊端,会导致实现的类型必须完全实现接口的所有方法、属性等。(四)(四)接口隔离原则接口隔离原则分离的手段主要有以下两种:一、委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但是会增加系统的开销。二、多重继承分离,通过接口多继承来实现客户的需求,这种方式是较好的。(五)(五)Liskov替换原则替换原则对于Liskov替换原则,其核心思想是:子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类

10、能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。在父类和子类的具体行为中,必须严格把握继承层次中的关系和特征,将基类替换为子类,程序的行为不会发生任何变化。同时,这一约束反过来则是不成立的,子类可以替换基类,但是基类不一定能替换子类。(五)(五)Liskov替换原则替换原则Liskov替换原则,主要着眼于对抽象和多态建立在继承的基础上,因此只有遵循了Liskov替换原则,才能保证继承复用是可靠地。实现的方法是面向接口编程:将公共部分抽象为基类接口或抽象类,通过Extract Abstract Class,在子类中通过覆写父类的方法实现新的方式支持同样的职责。Liskov

11、替换原则是关于继承机制的设计原则,违反了Liskov替换原则就必然导致违反开放封闭原则。Liskov替换原则能够保证系统具有良好的拓展性,同时实现基于多态的抽象机制,能够减少代码冗余,避免运行期的类型判别。(一)什么是人机交互部分(一)什么是人机交互部分(二)人机交互部分的需求分析(二)人机交互部分的需求分析(三)人机界面的设计准则(三)人机界面的设计准则(四)人机界面的(四)人机界面的OOOO设计设计(一)什么是人机交互部分(一)什么是人机交互部分人机交互部分是OOD模型的外围组成部分之一,是系统中负责人机交互的部分。其中所包含的对象(称作界面对象)构成了系统的人机界面。现今的系统大多采用图

12、形方式的人机界面形象、直观、易学、易用,远远胜于命令行方式的人机界面,是使软件系统嬴得广大用户的关键因素之一。支持图形用户界面开发的软件系统:窗口系统(如X Window,News,MS-Windows)图形用户界面(GUI)(如OSF/Motif,Open Look)可视化开发环境(如Visual C+,Visual Basic, Delphi)(二)人机交互部分的需求分析(二)人机交互部分的需求分析一、分析与系统交互的人(参与者)(1)列举所有的人员参与者(2)调查研究(3)区分人员类型(4)统计(或估算)各类人员的比例(5)了解使用者的主观需求(二)人机交互部分的需求分析(二)人机交互部

13、分的需求分析二、从用况分析人机交互(1)用况的构成:参与者的行为和系统行为按时间顺序交替出现,左右分明。形成交叉排列的段落。每个段落至少含有一个输入语句或输出语句;有若干纯属参与者自身或系统自身的行为陈述;可能包含一些控制语句或括号。(2)抽取方法:删除所有与输入、输出无关的语句删除不再包含任何内容的控制语句与括号剩下的就是对参与者(人)使用一项系统功能时的人机交互描述(三)人机界面的设计准则(三)人机界面的设计准则使用简便一致性启发性减少人脑记忆的负担减少重复的输入容错性及时反馈(四)(四)人机界面的人机界面的OOOO设计设计一、选择界面支持系统0级:操作系统和普通编程语言(全部人工编程)1

14、级:图形软件包(提供基本图形元素的绘制函数)2级:窗口系统(提供实现人机界面基本成分的支撑机制如实现窗口、菜单、对话框的库函数)3级:GUI(为实现具有特定的风格和视感的图形用户界面提供了更强的支持)4级:可视化编程环境(以“所见即所得”的方式构造用户界面)(四)(四)人机界面的人机界面的OOOO设计设计二、根据人机交互需求选择界面元素(1)系统的启动系统的启动 选用实现主界面的界面元素,如窗口、对话框窗口(2)高层命令组织结构的实现高层命令组织结构的实现通过界面元素的构造层次体现高层命令的组织结构(3)基本命令的执行基本命令的执行高层命令的执行是在人机界面上把用户引向基本命令,基本命令的执行则是从界面给实现其功能的对象送消息(4)详细交互过程的输入与输出详细交互过程的输入与输出选择适当的界面元素完成每个命令步的输入与输出(5)异常命令的输入异常命令的输入使用支持异常命令输入的界面功能,如鼠标右键菜单(四)(四)人机界面的人机界面的OOOO设计设计三、用OO概念与表示法表达所有的界面成分(1)用对象表示各种界面元素)用对象表示各种界面元素(2)属性与操作)属性与操作a a、用属性表示界面对象的静态特征物理特征如:位置、尺寸、颜色、立体效果逻辑特征聚合、关联b b、用操作表示界面对象的行为例如:创建、激活、最大化、最小化、移动、选中、单击、双击 (四)(四)人机界面的人机界面

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论