OOAD与面向对象简单理解

偶然间在V2上看到一则招聘启事,要求了解OOAD设计原则。于是我就到网上搜索来学习一下。

说道OOAD,不得不先说一下“面向对象(Object-Oriented)”

面向对象是一种编程方法,是一种思维方式,但不是一种编程语言。

面向对象的编程语言是以对象为中心,以消息为驱动。程序=对象+消息。

  • 什么是对象?

  1. 概念层面:对象是某种拥有责任的抽象。
  2. 规格层面:对象是一系列可以被其他对象使用的公共接口。
  3. 语言实现层面:对象封装了代码和数据。
  • 对象三要素:

  1. 对象标志(Object identifier),是系统内唯一识别对象的名字。
  2. 属性(Attribute),也成为状态(State)或数据(Data),用来描述对象的静态特征。
  3. 服务(Service),也叫操作(Operation)、行为(Behavior)或方法(Method),用来描述对象动态特征。

类是对象的抽象,对象是类的具体实例。

类不占内存,对象才占内存。

  1. 类:属于栈内存(Stack),由编译器自动分配释放。
  2. 对象:属于堆内存(Heap),由程序员分配释放。

类名 对象名 = new 类名()

  • OOAD中:

  1. OOP面向对象编程(Object-Oriented Programming),是一种计算机编程架构。OOP的一条基本原则是计算机程序是由单个能够起子程序作用的单元或对象组合而成。
  2. OOA指的是面向对象分析(Object-Oriented Analysis),从确定需求或者业务的角度,按照面向对象的思想来分析业务。
  3. OOD面向对象设计(Object-Oriented Design),是面向对象(OO,Object-Oriented)方法中一个中间过渡环节。主要用于对OOA分析结果进一步规范化整理,以便能够被OOP直接接受。

OOAD是根据OO的方法学,对软件系统进行分析和设计的过程。OOA是分析阶段,OOD是设计阶段。