目录
面向对象的概念与开发方法
面向对象=对象 + 类 + 继承 + 消息队列
对象:主要考虑属性、行为 面向对象程序的核心
类:对象的抽象
面向对象的基本组成单位是类
对象是现实世界物体特征的抽象实体、反映了系统为之保存的信息和与它交互的能力。是一些属性及服务的封装体,在程序设计领域可用 对 象=数据+作用域这些数据上的操作
对象的两个层次概念
1、现实生活中对象指的是客观世界的实体、可以是可见的有形对象
2、程序中的对象是一组变量和相关方法的集合
程序中的5类对象
物理对象:是最易识别的对象、通常可在问题领域的描述中找到、其属性可以标识和测量
角 色 :一个实体的角色也可以抽象一个单独的对象,角色对象的操作是由角色提供的技能
事 件 :一个事件是某种活动的一次“出现”、一个事件的对象通常是一个数据实体、事件对象的操作主要用于数据的存取
交 互 :表示了在两个对象之间的关系
规格说明:表明组合某些实体时的要求、其中的操作支持把一些简单的对象组合成较复杂的对象
类与封装
类
抽象数据类型描述的称为类、类具有相同操作功能和相同数据格式(属性)的对象的集合与抽象
对象是类的具体实例、都有相同的属性(可以具有不同的属性值)都可以使用类中定义的方法。一个实例的属性称为该实例的实例变量,实例变量一旦确定、该实例的状态也就确定了
封装
封装的定义:1、清楚的边界、所有对象的内部信息被限定在这个边界内
2、接口、即对象向外界提供的方法、外界可通过方法与对象进行交互
3、受保护的内部实现、即软件对象功能的实现细节、实现细节不能从类外访问
封装规定了程序如何使用对象的数据、控制用户对类的修改和数据访问权限。多数情况下会禁止直接访问对象的数据、只能通过接口访问对象
继承
一种联结的层次模型、为类的重用提供了方便、它提供了明确表达不同类之间共性的方法
多态
在面向程序设计中、主要工作是编写一个个的过程或函数、这些过程和函数不能重名
多态是指一个程序中同名的不同方法共存的情况。主要通过子类对父类方法的覆盖来实现多态
消息通信
消息是一个对象向另一个对象传递的信息。有4类消息
1、发送对象请求接收对象提供服务
2、发送对象激活接收对象
3、发送对象询问接收对象
4、发送对象传递信息给接收对象
消息的使用类似函数调用,消息中指定了接收消息的对象、操作名、参数表(可能是空的)、接收消息的对象执行消息中指定的操作。
系统功能的实现就是一组对象通过执行对象自身的操作和消息通信来完成的
面向对象的软件开发方法
面向对象编程、面向对象分析、面向对象设计 OOA-OOD-OOP的顺序 由OOP-OOD-OOA的顺序逐步发展成熟的
Booch方法
微开发过程、宏开发过程(定义了一组任务、在宏开发过程的每一步骤中反复使用它们、以维持演讲途径)
Rumbaugh方法
对象建模技术(OMT),用于系统分析、系统设计和对象级设计。
分析活动建立以下3种模型
1、对象模型:描述对象、类、层次和关系
2、动态模型:描述对象和系统的行为
3、功能模型:类似于高层的DFD、描述穿越系统的信息流
Coad和Yourdon方法
被认为最容易学习的OOA方法建模符号简单、开发分析模型的导引直接明了
Jacobson方法
OOSE(面向对象软件工程)方法、与其他方法不同之处在于特别强调用例(use case)__用以描述用户与系统之间的场景
Wirfs-Brock方法
不要求明确地区分分析和设计任务、从评估客户规格说明到设计完成、是一个连续的过程
UML
使用最广泛的建模语言(UML、统一建模语言) 包含了其他面向对象的优点
UML的特点
——统一标准性
——面向对象
——可视化、表达能力强大
——独立于过程 uml 是系统建模语言、不依赖特定的开发过程
——容易掌握使用。
——与编程语言的关系
UML的基本模型
事物、关系和图组成
UML的事物
事物是对模型中最具代表性成分的抽象,可分为、结构事物、行为事物、分组事物、注释事物四类
结构事物
静态部分、描述概念或物理元素、包括,类、主动类、接口、对象、用例、参与者、协作、构件和节点等
主动类:主动类的实例应具有一个或多个进程或线程、能够启动控制活动。主动类对象的行为与其他元素的行为可并发工作
接口:描述了一个类或构件的一组外部可用的服务(操作集)等。接口定义的是一组操作描述、并不是操作的实现、接口体现了使用与实现分离的原则
对象:类的实例、其属性值要明确给出 (不写对象名称为匿名对象)
用例:又称用况、表示系统想要实现的行为、即描述一组动作序列(即场景)。系统执行这组操作后将产生一个对特定参与者有价值的结果
参与者:即角色、指与系统有信息交互关系的人
协作:用例仅描述要实现的行为、不描述这些行为的实现。协作定义交互、描述一组角色实体和其他实体如何通过协同工作来完成一个功能或行为。类可以参与几个协作
构件:即组件,是系统中物理的、可替换的部件。通常用来描述一些逻辑元素的物理包
节点:是在运行时存在的物理元素。代表一种可计算的资源。通常具有一定的记忆能力和处理能力
行为事物
UML模型中的动态部分包括以下两类
1、交互:由在特定的上下文环境中共同完成一定任务的一组对象之间传递的消息组成
2、状态机:描述了一个对象或一个交互在生存期内响应事件所经历的状态序列。但各类或者一组类之间协作的行为都可以用状态机表示。状态机涉及状态、变迁、活动
分组事物
UML中的组织部份、降低了模型复杂度。UML中的分组事物是包。包是把模型元素组织成组的机制,其它事件都可以放进包内。
包不像构件(仅在运行时存在)、它纯粹是概念上的(即它仅在开发时存在)
注释事物
UML中的解释部分、用来描述和标注模型的任何元素。通常可以用来注释修饰带有约束或解释的图
UML的关系
常见的有、依赖、关联、泛化、和实现四种
依赖:两个事物之间的语义关系
关联关系:一种结构关系。分为普通关联、限定关联、关联类、聚合与复合
泛化关系:一般类和特殊类之间的继承关系。特殊类完全拥有一般类的信息、还可附加其他信息。UML中一般类亦称为泛化类、特殊类亦称为特化类。普通泛化、受限泛化
实现关系:实现是泛化关系和依赖关系的结合,也是类之间的语义关系。通常在以下两种情况出现实现关系
1、接口和实现他们的类或构件之间
2、用例和实现他们的协作之间
UML的图
分为两大类、结构图、行为图
结构图:用于系统的静态建模。包括、类图、组合结构图、构件图、部署图、对象图、包图、造型图,共七种
行为图:用于对系统的动态方面建模。也有七种、活动图、用例图、状态机图、顺序图、交互概览图、通信图、定时图。
交互图是顺序图、交互概览图、通信图、定时图的统称