面向对象的开发方法

1、面向对象的基本思想

面向对象方法的基本出发点就是尽可能地按照人类认识世界的方法和思维方式来分析和解决 问题。面向对象的方法以对象作为最基本得元素,它是分析问题、解决问题的核心。计算机 实现的对象与真实世界具有一一对应的关系。

2、基本概念

  • (1)对象:对象是人们要研究的客观世界中的任何事物。对象不仅能表示具体的事物,还能 表示抽象的规则、计划或事件。对象不仅能表示结构化的数据,而且能表示抽象的事件、规 则以及复杂工程的实体。如:面向对象数据库 Visual Foxpro 中的表单、命令按钮、组合框 等都是对象。
  • (2)对象的状态和行为(操作):对象具有状态,可以用数据值来描述状态,如某个学生的 姓名、年级、性别等数据值。对象的行为(操作)用于改变对象的状态。如:某个工人经过 “增加工资”的操作后,他的工资额就发生了变化。对象及其操作就是对象的行为。
  • (3)类:类是具有相同属性和服务的一组对象的集合,它为该类的全部对象提供了统一的抽 象描述,包括所有属性和操作的描述。即:一组数据属性和在数据上一组合法的操作。在一 个类中,每个对象都是类的示例(instance),同类的对象具有相同的方法集。类包括父类和 子类。子类通过继承机制获得父类的属性和操作,还可以扩充自己的属性和操作。
  • (4)消息:消息是指对象发出的服务请求。当一个消息发送给某个对象时,会包含要求接收 对象去执行某些活动的信息;接收到消息的对象经过解释,然后予以响应。这种通信机制叫 做消息传递。发送一条消息至少要包含接收消息的对象名、消息名(又称方法名)、参数说明 等。
  • (5)方法:方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行 操作的算法和响应消息的方法。当一个对象接收一条消息后,它所包含的方法决定对象采取 怎样动作。如:在 C++中方法称为成员函数。

3、面向对象的特征

  • (1)对象的唯一性:每个对象都有自身唯一的标识,通过这种标识,可以找到相应的对象。 (2)属性:即类中的数据值,对客观世界所具有的性质的抽象。在数据库 Visual Foxpro 中, 按钮的颜色、外观和大小等都是属性。
  • (3)继承性:指子类自动地共享父类中定义的数据和方法而不必重复定义他们,子类直接继 承其父类的全部描述(状态和操作)。
  • (4)多态性:指同样的消息既可以发送给父类对象,也可以发送子类对象,却可以导致不同 的结果。也就是说,在类等级的不同层次可以共享一个行为(方法)的名称,而不同层次中 的每个类却各自按照自己的需要来实现这个行为。

4、面向对象分析的基本过程

  • (1)建立功能模型
  • (2)建立对象模型
  • (3)建立动态模型
  • (4)定义服务

5、面向对象的设计(Object-Oriented Design, OOD)的基本步骤

  • (1)问题域子系统设计:主要任务是完善对象属性和操作的形式规定,包括限定值、确定复 杂服务的算法等等,进一步规范对象形式说明以便对象在物理上实现。
  • (2)人机交互子系统的设计:设计人-机交互系统。接口对象在设计初期就已经规定出来, 此时主要确定图形用户接口的总体策略。
  • (3)任务管理子系统设计:在设计多任务并行系统时,就会有任务管理问题。
  • (4)数据管理子系统设计:数据管理子系统是连接问题域子系统与外部数据库管理系统的桥 梁。

6、面向对象分析与设计工具

统一建模语言 UML (Unified Modeling Language) 作为一种可视化的建模语言,UML 为系统开发人员提供了标准的、易于理解的表达方式用于构 建系统蓝图,并提供了便于不同的开发人员共享和交流设计结果的有效机制。在 UML 支持下, 系统分析员、客户、程序员和其他系统开发人员能够相互理解,并以一致的方式来组织系统 的设计过程。UML 提供了 3 类基本的标准模型建筑块:事物、联系和图形。

(1)事物是一个模型的抽象成员,即构成模型的元素。

(2)UML 提供的模型建筑块之间的基本联系有 4 种:

  • 第一,依赖(Dependency)是模型建筑块之间的一种语义联系,其中一个事物发生改变将影响 另一个事物。
  • 第二,关联(Association)是指模型建筑块之间的结构联系,两个模型建筑块之间存在结构性 的链接。
  • 第三,泛化(Generalization)是指模型建筑块之间的一般与特殊的联系。
  • 第四,实现(Realization)是指模型建筑块之间的一种语义联系,其中一个规定了一组协议, 另一个负责实现。

(3)模型的表示法----视图

相关推荐

  1. 面向对象开发方法

    2024-07-15 10:00:02       26 阅读
  2. 面向过程和面向对象方式

    2024-07-15 10:00:02       53 阅读
  3. python面向对象__call__方法

    2024-07-15 10:00:02       47 阅读
  4. 面向对象继承方式(汇总)

    2024-07-15 10:00:02       63 阅读
  5. 面向对象特征

    2024-07-15 10:00:02       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 10:00:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 10:00:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 10:00:02       57 阅读
  4. Python语言-面向对象

    2024-07-15 10:00:02       68 阅读

热门阅读

  1. 板级调试小助手(3)基于PYNQ的OLED视频显示

    2024-07-15 10:00:02       23 阅读
  2. 小白学习微信小程序的音频合成和语音识别技术

    2024-07-15 10:00:02       26 阅读
  3. 关系型数据库和非关系型数据库

    2024-07-15 10:00:02       25 阅读
  4. 国密证书(gmssl)在Kylin Server V10下安装

    2024-07-15 10:00:02       18 阅读
  5. GE DS200CVMAG1AEB控制器 处理器 模块

    2024-07-15 10:00:02       22 阅读
  6. 【Go系列】 Sync并发控制

    2024-07-15 10:00:02       25 阅读
  7. 对AAC解码的理解

    2024-07-15 10:00:02       22 阅读
  8. 【Karapathy大神build-nanogpt】Take Away Notes

    2024-07-15 10:00:02       24 阅读