面向对象技术

2022-04-26  本文已影响0人  Ritchie_Li

面向对象基本概念

对象:基本的运行实体,为类的实例,封装了数据和行为的整体,如学生、汽车等真实存在的实体。对象具有清晰的边界、良好定义的行为和可扩展性。

消息: 对象之间进行通信的一种构造称为消息。

类: 是对象的抽象,定义了一组大体相似的对象结构,定义了数据和行为。

包括实体类(用于对必须存储的信息和相关行为建模的类,是需要长久保存且一直存在的 类)、

边界类(系统内部与系统外部的业务主角之间进行交互建模的类)、

控制类 (用于对一个或几个用例所特有的控制行为进行建模,在用例执行过程中被动出现的特定行为的类)。

在领域类模型中会涉及描述类自身情况的属性与操作,还会有 描述类与类之间的关联,但不会有对象层次的内容。

**继承:**父类和子类之间共享数据和方法的机制。是类之间的一种关系。

多态: 不同的对象收到同一个消息时产生完全不同的反应。包括参数多态(不同类型参数多种结构类型)、包含多态(父子类型关系)、过载多态(类似于重载,一 个名字不同含义)、强制多态(强制类型转换)四种类型。多态由继承机制支持。

覆盖: 子类在原有父类接口的基础上,用适合于自己要求的实现去置换父类中的相应实现。即在子类中重定义一个与父类同名同参的方法。

函数重载: 与覆盖要区分开,函数重载与子类父类无关,且函数是同名不同参数。

封装: 一种信息隐蔽技术,其目的是使对象的使用者和生产者分离,也就是使其他开发人员无需了解所要使用的软件组件内部的工作机制,只需知道如何使用组件。

静态类型是指一个对象的类型在编译时就确定;

动态类型指对象类型在运行时才能确定。

静态绑定(静态分配)是基于静态类型的,在程序执行前方法已经被绑定;

动态绑定是基于动态类型的,运行时根据变量实际引用的对象类型决定调用哪个方 法,动态绑定支持多态。

面向对象的分析设计

面向对象分析:是为了确定问题域,理解问题。

包含五个活动:

认定对象(按自然存在的实体确定对象)、

组织对象(分析对象关 系,抽象成类)、

对象间的相互作用(描述各对象在应用系统中的关系)、

确定对象的操作(操作,如创建增加删除等)、

定义对象的内部信息(属性)。

面向对象设计:是设计分析模型和实现相应源代码,在目标代码环境中这种源代码 可被执行。设计问题域的解决方案。

面向对象程序设计:用面向对象程序设计语言实现设计方案。详见下午软件设计。

面向对象测试:与普通测试步骤并无不同。

可分为四个层次:

算法层(测试类中定义的每个方法,类似单元测试)、

类层(测 试同一个类中所有方法与属性的相互作用,特有的模块测试)、

模板层(测试一组 协同工作的类之间的相互作用,类似集成测试)、

系统层(类似系统测试)。

对象和逍息是两个独立的概念,对象是类的实体,因此包括行为、属性,对象运行时必然有状态:类的对象共享类的属性和行为。

UML

UML是统一建模语言,和程序设计语言并无关系。

UML三个要素:UML的基本构造块、支配这些构造块如何放置在一起的规则和运用 与整个语言的一些公共机制。

UML的基本构造块包括:事物(对模型中最具有代表性的成分的抽象)、关系(把 事务结合在一起)、图(聚集了相关的事物)。

UML中有四种事物:结构事物、行为事物、分组事物、注释事物。

结构事物:模型的静态部分,如类、接口、用例、构件等;如下图示例:

事务

行为事物:模型的动态部分,如交互、活动、状态机

分组事物:模型的组织部分,如包;

注释事物:模型的解释部分,依附于一个元素或一组元素之上对其进行约束或解释的简单符号。

关系

依赖:一个事物的语义依赖于另一个事物的语义的变化而变化

关联:是一种结构关系,描述了一组链,链是对象之间的连接。分为组合和聚合,都是部分和整体的关系,其中组合事物之间关系更强。两个类之间的关联,实际上是两个类所扮演角色的关联,因此,两个类之间可以有多个由不同角色标识的关联。

泛化:一般/特殊的关系,子类和父类之间的关系

实现:一个类元指定了另一个类元保证执行的契约。

上一篇下一篇

猜你喜欢

热点阅读