太久没有读这些基础概念了。关键信息摘录备忘。
二、对象模型
- 面向对象编程是一种实现的方法,在这种方法中,程序被组织成许多组相互劣作的对象,每个对象代表某个类的实例,而类则属于一个通过继承关系形成的层次关系。
- 面对对象设计是一种设计方法,包含面对对象分解的过程和一种表示法,这种表示法用于展现被设计系统的逻辑模型和物理模型、静态模型和动态模型。
- 面向对象分析是一种分析方法,这种方法利用从问题域的词汇表中找到的类和对象来分析需求。
对象模型要素
- 抽象
- 封装
- 模块化
- 层次结构
- 类型
- 并发
- 持久
抽象
抽象描述了一个对象的基本特征,可以将这个对象的所有其他类型的对象区分开来,因此提供了清晰定义的概念边界,他与观察者的视角有关。
实体抽象:一个对象,代表了问题域或者解决方案域实体的一个有用的模型;
动作抽象:一个对象,提供了一组通用的操作,所有操作都执行同类的功能;
虚拟机抽象:一个对象,集中了某种高层控制要用到的所有操作,或者这些操作将利用某种更底层的操作集;
偶然抽象:一个对象,封装了一组相互间没有关系的操作。
封装
封装是一个过程,它分隔构成抽象的结构和行为的元素。封装的作用是分离抽象的概念接口及其实现。
模块化
模块化是一个系统的属性,这个系统被分解为一组高内聚、低耦合的模块。
层次结构
层次结构是抽象的一种分级或排序。
类型
类型是关于一个对象的类的强制规定,这样一来,不同类型的对象不能够互换使用,或者至少他们的互换使用受到严格的限制。
并发
并发是一种属性,它区分了主动对象和非主动对象。
持久
持久是对象的一种属性,利用这种属性,对象跨越时间和空间而存在。
三、类与对象
- 对象:对象是一个具有状态、行为和标识符的实体。结构和行为类似的对象定义在他们共同的类中。
- 状态:对象的状态包括这个对象的所有属性(通常是静态的)以及每个属性当前的值(通常是静态的)。一个对象的状态代表了它的行为的累积效果。
- 行为:行为是对象在状态改变和消息传递方面的动作和反应的方式。
对象之间的关系
- 链接:两个对象之间物理或概念上的联系。
- 聚合
- 继承
类是一组对象,它们拥有共同的结构、共同的行为和共同的语义。
关键抽象是来自于问题域词汇表的类和对象。
机制是一种结构,一组对象通过它互相协作,提供满足问题域的某种需求的行为。
抽象的品质可以通过它的耦合,内聚、充分性、完整性和基础性来度量。
四、分类
- 确定类和对象是面向对象分析和设计中的基本问题,确定过程包括发现和发明。
- 分类本质上是分组问题。
- 分类是一个增量、迭代的过程。它很难,其难处体现在给定的一组对象可以按几种同样的方式来分类。
- 分类的三种方式,包括经典分类(按属性分类)、概念聚集(按概念分类)和原型理论(按照与原型的关系来分类)。
- 场景是强大的面对对象分析工具,可以用于经典分析、行为分析、领域分析和用例分析。
- 关键抽象反映了问题的词汇表,可以从问题域中发现,也可以作为设计的一部分而发明。
- 机制代表了战略上的设计决策,考虑的是许多不同类型的对象的协作活动。