第10章面向对象的方法
面向对象的方法是今后软件开发方法的主流。学习本章,***是学过面向对象程序设计语言,这样可以对对象、类、类的层次结构、方法、消息等概念更容易理解。本章总的要求是,掌握面向对象的基本思想、基本概念、基本原理,掌握三种模型的基本概念和构造方法,掌握面向对象的分析、设计和实现的过程。
一、面向对象的基本概念
1、什么面向对象?首先了解几个概念:
1、对象:对象是人们要进行研究的任何事物。具体一点讲就是研究对象。它可以是有形实体,也可以是作用、事件、性能说明等,当然,如果女朋友成为你研究的对象时,对象也可以是你的女朋友。
2、对象的状态和行为:对象有自身的状态,比如你的女朋友有她的姓名(叫小丽)、年龄(22岁)、工作单位等。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为,比如"小丽.跳槽到(某公司)"这个行为将使她的工作单位这个状态发生变化。
3、类:具有相同或相似性质的对象的抽象就是类。如桃树、李树、樟树等是具体的树,抽象之后得到"树"这个类。类具有属性,属性是状态的抽象,如一棵李树的高度是3米,樟树是10米,树则抽象出一个属性"高度"。类具有操作,它是对象行为的抽象。
4、类的结构:有两种,一种是"一般-具体"结构,如植物、树都是类,它们之间是抽象到具体的关系,即树是一种(is a)植物。还有一种就是"整体-部分"结构,如计算机是类、CPU也是类,则计算机与CPU之间就是整体与部分的关系。
5、消息和方法:对象之间进行通信的构造叫做消息,比如小丽是一个对象,上司发出一个消息:小丽.出差到(深圳)。这样,相应的对象接收到这个消息就会给予响应,在这个消息中,小丽是对象名,出差到就是方法名,深圳就是参数。在类中操作的实现过程叫做方法。上面的出差到(某地)这个方法如何实现呢,就是买车票,乘车到某地。这个过程就是方法。
总之,面向对象这种思想很符合人们观察世界的自然思想。在很多时候我们可以用自然的观点去理解面向对象。
2、面向对象的特征有四点:对象唯一性、分类性、继承性和多态性。
3、面向对象的要素:抽象、封装性、共享性
4、面向对象技术强调的是对象结构而不是程序结构。
5、面向对象的开发方法主要有以下几种:Coad方法、Booch方法、OMT方法和OOSE方法,***的统一建模语言UML则不仅统一了Booch方法,OMT方法、OOSE方法,而且对其作了进一上的发展,最终统一为大众所接受的标准建模语言。
二、面向对象的模型(简单应用)
面向对象的模型包括三个,它们分别是:描述系统数据结构的对象模型、描述系统控制结构的动态模型和和描述系统功能的功能模型。这三种模型都涉及到数据、控制和操作等共同的概念,只是每种模型描述的侧重点不同。这三种模型从三个不同但又密切相关的角度模拟目标系统,它们各自从不同的侧面反映了系统的实质性内容,综合起来则全面反映了对目标系统的需求。
1、对象模型:它表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。该模型主要关系的是系统中对象的结构、属性和操作,使用了对象图的工具来刻画,它是分析阶段三个模型的核心,也是其他两个模型的框架。涉及及的概念有,对象和类、关联和链。
2、动态模型:是与时间和变化有关的系统性质。该模型描述了系统的控制结构,它表示了瞬时的、行为化的系统控制性质,它关系的是系统的控制,操作的执行顺序,它从对象的事件和状态的角度出发,表现了对象的相互行为。该模型描述的系统属性是触发事件,事件序列、状态、事件与状态的组织。使用状态图作为描述工具。涉及的重要概念是事件、状态、操作等。
3、功能模型:描述了系统的所有计算。功能模型指出发生了什么,动态模型确定什么时候发生,而对象模型确定发生的客体。功能模型表明一个计算如何从输入值得到输出值,它不考虑所计算的次序。功能模型由多张数据流图组成。数据流图说明数据流是如何从外部输入、经过操作和内部存储输出到外部的。功能模型也包括对象模型中值的约束条件。功能模型说明对象模型中操作的含义、动态模型中动作的意义以及对象模型中约束的意义。相关的概念有:数据流图中的处理、数据流、动作对象、数据存储对象等。
三、面向对象的分析(简单应用)
面向对象分析的目的是对客观世界的系统进行建模。分析问题有三种用途:用来明确问题需求;为用户和开发人员提供明确需求;为用户和开发人员提供一个协商的基础,作为后继的设计和实现的框架。通过分析,建立对象模型、动态模型和功能模型。
四、面向对象的设计(领会)
1、面向对象设计的准则:
(1)模块化:对象就是模块,它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。
(2)抽象:包括过程抽象、数据抽象、规格说明抽象及参数化抽象等。
(3)信息隐蔽:在面向对象方法中,信息隐蔽通过对象的封装性来实现。
(4)低耦合:低耦合是设计的一个重要标准,应该避免对象之间的高耦合,强调对象间的低耦合。
(5)高内聚:在面向对象设计中存在三种内聚:操作内聚、类内聚及一般-具体内聚,紧密的继承耦合与高度的一般--具体内聚是一致的。
2、面向对象设计的启发规则:
(1)设计结果应该清晰易懂
(2)一般--具体结构的深度应适当
(3)设计简单的类
(4)使用简单的协议
(5)使用简单的操作
(6)把设计变动减至最小
五、面向对象的实现(领会)
面向对象实现主要包括两项工作,把面向对象设计结果翻译成用某种程序设计语言写成的面向对象程序;测试并调试面向对象程序。
在开发过程,类的实现是核心问题。在用面向对象风格所写的系统中,所有的数据都被封装在类的实例中,而整个程序则被封装在一个更高级的类中。
【编辑推荐】