面向对象方法基础

2019-05-24  本文已影响0人  星q_p光

面向对象:

用等式解释:面向对象=对象+分类+继承+通过的消息通信

采用这四个概念开发的软件系统就是面向对象的

对象:

现实生活中每个实体都是对象,计算机系统中:对象是指一组属性和在这组属性上专门操作的封装体。

类:

拥有相同属性和相同操作的集合。一个类中每个对象都是这个类的实例

继承:

一个类可以定义成另一个更一般类的特殊情况,子类可以继承父类的特点,同时可以定义自己的特点。

继承是一种类间的关系。

消息:

对象间通信的手段,一个对象通过向另一个对象发送消息来请求服务。

多态性和动态绑定:

多态性:同一个操作,在不同的对象上有不同的解释,并产生不同的执行结果。

动态绑定:程序运行时才将消息所请求的操作与实现该操作的方法进行连接

面向对象的分析和设计过程:

分析的步骤:如何分析:

1.获取客户对系统的需求,包括标识场景和用况,并建造需求模型。

2.用基本的需求作为指南,选择类和对象

3.定义类的结构和层次

4.建造对象-关系模型

5.建造对象-行为模型

6.利用用况/场景来复审分析模型


获取客户对系统的需求:

如何获取:采用用况来收集需求的技术

先表示该系统的不同执行者,每个执行者叙述他如何使用系统,他需要系统做什么提供什么功能

用况模型:

该模型用于描述一个系统应该做什么的建模技术。

不仅用于新系统的需求索取,还用于已有系统的升级

主要成分:用况、执行者、系统

创建模型的步骤:

1.定义系统

2.确定执行者:执行者是与系统交互的人或系统代表的是一种角色

3.确定用况

4.描述用况:用正文描述,正文:执行者和用况如何交互的简明和一致的规约

5.定义用况之间的关系

6.确认模型

模型组成:由用况图组成,用况图展示了执行者和用况及他们之间的关系

用况图中的关系:

1.关联:执行者和他参加的用况之间的通信路径

                记号:普通直线

2.扩展:在原来用况中拓展出去,通过模块化的方法增量的修改基本用况

                记号:虚线带箭头+《extend》

3.包含:基本用况可以看到包含用况,以来执行包含用况的结果两者之间不能访问其他属性。

                记号:虚线带箭头+《include》

4.用况泛化:一个一般用况和特殊用况之间的关系,特殊用况可继承一般用况

                记号:实线带箭头


标识类和对象:

如何标识类:CRC技术

什么是CRC技术

它属于静态建模(描述系统中包含的类和类之间的关系,展现系统的静态结构,称为静态是因为不描述与时间有关的系统行为)

CRC称为类-责任-协作者技术,实际上是表示类的索引卡片,每个卡片分为三个部分,分别描述类名,类的职责,类的协作者

标识类的过程:标识候选对象、筛选候选对象

标识职责:职责是与类相关的属性和操作,类所知道和要做的任何事

                    1)标识属性:属性描述类的特征

                    2)定义操作:操作定义了对象的行为并以某种方式修改对象的属性值  。操作可以分为如下三种:以某种方式操作数据的操作、完成某种计算操作、控制事件的发生而监控对象的操作。操作通常定义为函数

标识协作者:一个类可以自己完成某一职责,也可以通过其他协做完成,如果一个对象为了完成某个职责需要向其他对象发送消息,则称该对象和另一个对象协作


定义类的结构和层次:

类的结构主要有两种:

一般-特殊结构:is-a关系

整体-部分结构:has-a关系


建造对象-关系模型:

对象-关系模型描述了系统的静态结构

类与类之间的关系:

1.关联:类实例间连接的描述

关联的种类:二元关联、多元关联、受限关联、聚集、组合

二元关联:双向的可以有两个关联名,实心三角表示方向

多元关联:三个以上关联

受限关联:一对多或者多对多关联

聚集:整体-部分的一种关联

组合:部分对象可以是任意整体对象的一部分

2.依赖:

3.泛化:类之间一般-特殊的关系,特殊描述建立在一般描述的基础上,并对他进行扩展

4.实现:将一个模型元素连接到另一个模型元素,前者支持后者的所有操作,Q前者是后者的实现


建立对象-行为模型:

描述了系统的动态行为

动态建模:

描述系统的动态行为,显示对象在系统运行期间不同时刻的动态交互

UML中使用状态机图、活动图、顺序图、通信图、协做图建立动态模型

状态机图:

说明类的对象所有可能的状态,以及哪些事件将导致状态的改变

画状态图的步骤:

1.列出对象具有的所有状态:

    起始状态,结束状态,中间状态

2.标识导致状态转换的事件

3.为状态和迁移定义状态变量和动作

UML统一建模语言有哪几种图形?各种图形主要功能是什么?

上一篇下一篇

猜你喜欢

热点阅读