面向对象设计全解析
1. 面向对象的基本概念
在软件开发中,设计常被认为是编程前的步骤,但实际上,分析、编程和设计往往相互重叠、结合和交织。那么,什么是面向对象呢?
我们都知道,现实中的对象是我们能感知、触摸和操作的实体,比如婴儿最早接触的玩具,像木块、塑料形状和超大拼图块等。婴儿很快就会了解到某些对象能实现特定功能,如铃铛会响、按钮能按、杠杆可拉。
在软件开发里,对象的定义与之类似。软件对象通常不是能实际拿起、感知或触摸的实体,但它们是具有特定功能且能被执行特定操作的事物的模型。从形式上来说,对象是数据和相关行为的集合。
“面向对象”意味着功能上指向对对象的建模。这是通过描述一组通过数据和行为相互作用的对象来对复杂系统进行建模的众多技术之一。
2. 面向对象相关阶段
在软件开发领域,有几个与面向对象紧密相关的概念,包括面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)。这些都是软件开发的不同阶段,“面向对象”只是明确了软件开发所采用的风格。
- 面向对象分析(OOA) :这是审视一个问题、系统或任务(某人想将其转化为应用程序),并识别其中对象以及这些对象之间相互作用的过程。此阶段关注的是需要做什么。分析阶段的输出是一组需求。例如,如果任务是“我需要一个网站”,经过分析可能会转化为以下需求:
- 网站访客需要能够(斜体表示动作,粗体表示对象):
- 回顾我们的历史
- 申请工作
- 浏览、比较和订购产品
- 从某种程度上说,“分析”这个词并不准确。就像前面提到的婴儿,他们不是在分析积木和拼图块,而是在