面向对象方法基础
面向对象:
用等式解释:面向对象=对象+分类+继承+通过的消息通信
采用这四个概念开发的软件系统就是面向对象的
对象:
现实生活中每个实体都是对象,计算机系统中:对象是指一组属性和在这组属性上专门操作的封装体。
类:
拥有相同属性和相同操作的集合。一个类中每个对象都是这个类的实例
继承:
一个类可以定义成另一个更一般类的特殊情况,子类可以继承父类的特点,同时可以定义自己的特点。
继承是一种类间的关系。
消息:
对象间通信的手段,一个对象通过向另一个对象发送消息来请求服务。
多态性和动态绑定:
多态性:同一个操作,在不同的对象上有不同的解释,并产生不同的执行结果。
动态绑定:程序运行时才将消息所请求的操作与实现该操作的方法进行连接
面向对象的分析和设计过程:
分析的步骤:如何分析:
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统一建模语言有哪几种图形?各种图形主要功能是什么?