面向对象方法学引论.pptx
第八章面向对象方法学引论
010203040506客观世界的问题是由客观实体及实体之间的关系构成的,抽象为问题域的对象客观世界中实体既具有静态的属性又具有动态的行为。计算机借助编程语言处理计算机中的实体(解空间的对象)传统语言提供的解空间对象实质上仅是描述实体属性的数据,必须在程序中从外部对它施加操作,才能模拟它的行为。面向对象方法是以数据或信息为主线,把数据和处理相结合的方法,把对象作为由数据及可以施加在这些数据上的操作所构成的统一体。对象是对数据进行处理的主体。必须发消息请求对象主动地执行它的某些操作,处理其私有数据,不能从外界直接对它的私有数据进行操作。8.1面向对象方法学概述
传统方法数据与过程是分离的过程1输入输出过程2过程3数据实体属于该对象的数据对象处理数据的方法消息消息对象把数据和处理数据的方法封状成一个单元统开发方法把程序看作是工作在数据上的一系列过程或函数的集合。面向对象方法学把程序看作是相互协作而又彼此独立的对象的集合。每个对象就像一个微型程序,有自己的数据、操作、功能和目的。减少语义断层解空间与问题空间的结构十分一致,易于理解和维护。8.1面向对象方法学概述
系统是过程的集合过程与数据实体交互过程接受输入并产生输出传统方法系统是交互对象的集合对象与人或其它对象交互对象发送与响应消息面向对象方法8.1面向对象方法学概述
8.1面向对象方法学概述面向对象方法学要点认为客观世界是由各种对象组成的用对象分解取代功能分解把所有对象都划分成各种对象类按照子类父类的关系把对象类组成一个层次结构的系统对象之间仅通过传递消息OO=Objects+Classes+Inheritance+Communicationwithmessages
优点1自然性2追求软件系统对现实系统的直接模拟,尽量实现将3现实世界中的事物直接映射到软件系统的解空间中4软件复用reusebility5对象所固有的封装性和信息隐藏机理保证了对象具有很强的自含性和较强的独立性。6可扩展性7对象的独立性、继承机制8可管理性9面向对象的软件稳定性较高、较容易修改、较容易理解、易于测试和调试。108.1面向对象方法学概述
8.2面向对象的概念对象(客观世界)具有动态和静态两个方面对象的形象表示
8.2面向对象的概念对象的定义对象是具有相同状态的一组操作的集合对象是对问题域中某个东西的抽象,该抽象反映了系统保存有关这个东西的信息或交互能力,既对象是对属性值和操作的封装对象::ID,MS,DS,MI对象封装了数据结构和施加在这些数据结构上的操作的封装体,它有唯一的标识,对外提供一组服务对象的特点以数据为中心对象是主动的对数据封装本质上具有并行性独立性好
类(class)1实例(instance)2消息(message)3方法(method)4属性(attribute)5封装(encapsulation),提供接口,隐藏数据6继承(inheritance)7多态性(polymorphism)(P186),滞后联编8重载(overloading)(P187),静态联编98.2面向对象的概念
模型(P187)01为理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。02有一组图示符号和组织符号的规则组成038.4对象模型
8.3面向对象建模对象-关系模型类/对象模型属性、01对象-行为模型操作、02使用实例(UseCase)协作者03
010203040506对象模型可以看成是数据流和语义数据模型的结合对象模型表示静态的、结构化系统的“数据”性质。它是对模拟客观世界实体的对象,以及对象彼此间的关系的映射,描述了系统的静态结构。对象模型是一个类(包括其属性和行为)、对象(类的实例)、类和(或)对象之间关系的定义集。类名是一类对象的抽象命名,其命名是否恰当对系统的可理解性影响相当大。对象模型还必须表示类/对象之间的结构关系。类/对象之间的关系一般可概括为关联、归纳(泛化)、组合(聚集)三类。8.4对象模型
8.4对象模型类图的基本符号定义类定义属性定义服务
8.4对象模型表示关系的符号关联:表示两个类的对象之间有某种语义上的联系关联的表示、关联名、重数、关联的角色关联的种类:普通关联、限定关联、关联类普通关联
8.4对象模型限定关联关联类
8.4对象模型聚集(部分与整体的关系)共享聚集组合聚集
8.4对象模型LOGO泛化(继承)种类:普通泛化、受限泛化
8.4对象模型
8.4对象模型受限泛化:多重、不相交、完全、不完全
8.4对象模型依赖与细化(P195)
8.5动态模型动态模型表示瞬间的、行为化的系统“控制”性质,它规定了对象模型中对象的合法变化序列。对象运行周期中的阶段就是对象的状态。对象状态是对对象属性的一种