面向对象(Object-Oriented,OO)方法是当前的主流开发方法。
需要掌握的知识点:
- 统一建模语言:熟练掌握UML的图形表示、含义和用法。
- 面向对象分析:熟练掌握继承、封装、多态的概念和用法,面向对象分析的基本概念,利用UML对系统需求建模,熟练掌握基于场景的建模。
- 面向对象设计:面向对象设计方法,利用UML对软件设计建模,熟练掌握面向对象程序设计,掌握设计模式
- 面向对象软件的测试:面向对象软件的测试层次。
- 设计模式:经典的GoF23种模式的定义和结构。
1 基本概念:
面向对象方法包括:面向对象分析、设计和程序设计。
(1)对象:
指一组属性及这组属性上的专用操作的封装体。属性可以是一些数据,也可以是另一个对象。每个对象都由它自己的属性值,表示该对象的状态,用户只能看到对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分离,使对象的定义和实现分开,一个对象通常包括3部分,对象名、属性和操作(方法)。
(2)类:
一组具有相同属性和操作的对象的集合。一个类中的每个对象都是这个类的一个实例(instance)。通常把一个类和这个类的所有对象称为类及对象或对象类。一个类通常由3部分组成:类名、属性和方法。每一个类一般都有实例,没有实例的类称为抽象类。抽象类不能被实例化,抽象方法只需要声明,而不需要实现。抽象类的子类必须覆盖所有抽象方法后才能被实例化,否则这个子类还是抽象类。是否建立了丰富的类库是衡量一个面向对象程序设计语言成熟与否的重要标志之一。
(3)继承
在某个类的层次关联中不同的类共享属性和操作的一种机制。一个父类可以有多个子类。父类描述了这些子类的公共属性和操作,子类可以定义属于自己的属性和操作。一个子类只有唯一的父类,这种继承称为单一继承,一个子类如果有多个父类,则称为多重继承。对于两个类A和B,如果B类是A类的子类,则A类是B类的泛化。继承是面向对象方法区别于其他方法的一个核心思想。
(4)封装
面向对象系统中的封装单位是对象,对象之间只能通过接口进行信息交流,外部数据不能对对象中的数据随意访问,封装的优点:好的封装能减少耦合,类内部的实现可以自由改变,一个类有更清楚的接口。
(5)消息
消息是对象间通信的手段,一个对象通过向另一对象发送消息来请求其服务。一个消息通常包括接收对象名、调用的操作名和适当的参数,消息只需要告诉接收对象需要完成什么操作,单并不能指示接收者怎样完成操作,消息完全由接收者解释,接收者独立决定采用什么方法来完成所需操作。
(6)多态性
多态指同一个操作作用于不能的对象时,可以有不同的解释,并产生不同的结果,与多态性密切相关的一个概念就是动态绑定,传统的程序设计语言把过程调用与目标代码的连接放在程序运行前进行,称为静态绑定,动态绑定则把这种连接推迟到运行时才进行。在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法连接,即动态绑定。
2 统一建模语言
UML结构包括UML基本构造块、支配这些构造块的规则(体系结构)和运用于整个UML的机制。
UML有3种基本构造块:事物(thing)、关系(relationship)、图(diagram)。事物是UML中重要的组成部分,关系是把事物紧密联系在一起,图式很多有相互关联的事物的组。
公共机制是指达到特定目标的公共的UML方法,主要包括规格说明(详细说明)、修饰、公共分类(通用划分)和扩展机制4种。
(1)规格说明:元素语义的文本描述,是模型真正的核心。
(2)修饰:UML为每一个事物设置了一个简单的记号,还可以通过修饰来表达更多的信息。
(3)公共分类:包括类元与实体(类元表示概念,而实体表示具体的实体)、接口与实现(接口用来定义契约,而实现就是具体的内容)。
(4)扩展机制:包括约束(添加新规则来扩展事物的语义)、构造型(用于定义新事物)、标记值(添加新的特殊信息来扩展事物的规格说明)。
3 规则
UML用于描述事物的语义规则分别是为事物、关系和图命名。给一个名字以特定含义的语境,即范围;怎样使用或看见名字,即可见性;事物如何正确一致地相互联系,即完整性;运行或模拟动态模型的含义是什么,即执行。
5种系统视图:逻辑视图、进程视图、实现视图、部署视图和用例视图。
(1)逻辑视图:以问题域的语汇组成的类和对象集合。
(2)进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描绘了所涉及的并发与同步结构。
(3)部署视图:把构件部署到一组物理的、可计算的节点上,表示软件到硬件的映射及分布结构。
(4)实现视图:对组成基于系统的物理代码的文件和构件进行建模。
(5)用例视图:最基本的需求分析模型。
4 事物
UML中的 事物也称为建模元素,包括结构事物(structural things)、行为事物(behavioral things)、分组事物(grouping things)和注释事物(annotational things),这些事物是UML模型中最基本的面向对象的构造块。
(1)结构事物:在模型中属于最静态的部分,代表概念上或物理上的元素,总共有7种结构事物:
- 类
- 接口:接口是指类或构件提供特定服务的一组操作的集合,一个接口描述了类或构件的对外的可见的动作。
- 协作:定义了交互的操作,是一些角色和其他元素一起工作,提供一些合作的动作。协作具有结构化、动作化、维的特性。
- 用例:描述一系列的动作,是系统对一个特定的角色执行,产生质的注意的结果值,在模型中,用例常用来组织行为事物,用例是通过协作实现的。
- 活动类:有一个或多个进程或线程。
- 构件:物理上的系统部分。
- 节点:是一个物理元素,运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力,一个构件集合一般来说位于一个节点,但有可能从一个节点转到另一个节点。
(2)行为事物:行为事物是UML模型中的动态部分,是模型的动词,代表时间和空间商的动作。
- 交互(内部活动),交互式由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作。交互中组成动作的对象每个操作都要详细列出,包括消息、动作次序(消息产生的动作)、连接(对象之间的连接)。
- 状态机,状态机由一系列对象的状态组成。
(3)分组事物
分组事物是UML模型中组织的部分,可以看成盒子,模型可以在其中被分解,总共只有一种分组事物,称为包,包是一种将有组织的元素分组的机制。结构事物、行为事物、分组事物都有可能放在一个包中。
(4)注释事物,UML模型中的解释部分。
5 关系
UML用关系把事物结合在一起,主要有4种:
- 依赖(dependencies):两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
- 关联(association):一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系)。
- 泛化(generalization):一种一般化和特殊化的关系,描述特殊元素的对象可替代一般元素的对象。
- 实现(realization):类之间的语义关系,其中一个类指定了由另一个类保证执行的契约。
分享到:
相关推荐
系统设计说明书模板(面向对象方法) 在软件开发过程中,系统设计是非常重要的一步骤。它能够帮助开发者了解系统的总体架构、功能模块、接口设计、数据结构设计等方面的信息。系统设计说明书模板(面向对象方法)便...
### 面向对象方法教学大纲相关知识点 #### 一、课程教学目标 - **目的**: 本课程旨在培养学生在已有的计算机基础知识之上,深化理解并掌握面向对象的基本方法和技术,具备利用面向对象方法解决实际问题的能力。 - ...
面向对象方法学是一种重要的软件开发方法,它将现实世界中的问题和解决方案转化为计算机程序的模型。在本案例中,"基于面向对象方法学的银行储蓄系统"是一个典型的计算机科学项目,旨在模拟实际银行的储蓄服务。这个...
面向对象方法学(Object-Oriented Methodology)是一种在软件开发过程中广泛应用的系统设计和建模技术,它强调以对象为中心来组织和管理系统的复杂性。UML(Unified Modeling Language,统一建模语言)是面向对象...
《数据结构(用面向对象方法与C++语言描述)》是由殷人昆编著的一本经典教材,专注于讲解如何利用面向对象编程的思想和C++语言来实现和理解数据结构。这本书的第二版提供了深入的数据结构理论,同时也强调了实际编程...
数据结构(用面向对象方法和C++描述)殷人昆 数据结构(用面向对象方法和C++描述)殷人昆 数据结构(用面向对象方法和C++描述)殷人昆 数据结构(用面向对象方法和C++描述)殷人昆 数据结构(用面向对象方法和C++...
1面向对象方法论及UML 简介 2云豹( Rumbaugh)面向对对象的方法论 3雪梨与米勒(Shlaer&mellor)面向对象方法论 4 雅寇森(Jacobson)面向对象方法论 5 布什(Booch)面向对象方法论 6 尤顿(Yourdon)面向对象方法...
《殷人昆数据结构用面向对象方法与C++语言描述》是数据结构领域一本重要的教材,尤其对于学习C++编程的计算机科学和技术专业的学生来说,它提供了深入理解数据结构和算法的基础。本书的第二版在第一版的基础上进行了...
面向对象方法是一种常用的软件设计与开发范式,其核心思想是使用对象来模拟现实世界中的实体和概念。在面向对象方法中,对象是封装了数据以及对数据操作方法的基本单位,它具有属性和行为。属性通常是指对象的特征或...
面向对象方法学是计算机科学中的一个重要分支,主要探讨如何利用面向对象编程(OOP)的概念来设计和实现软件系统。这种方法学强调将现实世界的问题映射为计算机程序中的对象,通过类和对象的交互来解决问题。在烟台...
数据结构习题解析 用面向对象方法与C++语言描述,清华大学出版,殷人昆主编的那本
数据结构习题解析(用面向对象方法与C++描述)清华大学出版社
数据结构习题解析-面向对象方法和C++语言描述-殷人昆.doc
《数据结构习题解析——用面向对象方法与C++语言描述》是《数据结构(面向对象方法与C++语言描述)》//作者:殷人昆,的配套教材,它面适合大专院校计算机、软件专业本科生使用,也可作为老师和有关科研人员的参考书...