学习目标 3.1.A: 使用自然语言或创建图表来表示程序设计,图表中应指出程序中的类以及每个类中发现的数据和过程抽象,并包含所有属性和行为。
- 3.1.A.1 抽象(Abstraction) 是通过关注核心思想来降低复杂性的过程。通过隐藏与当前问题无关的细节,并将相关且有用的细节整合在一起,抽象降低了复杂性,使人们能够专注于核心思想。
- 3.1.A.2 数据抽象(Data abstraction) 提供了数据类型抽象属性与其表示具体细节之间的分离。数据抽象通过给数据命名而不引用表示的具体细节来管理复杂性。数据可以表现为单个变量,也可以表现为数据的集合,例如在类或数据集的形式中。
- 3.1.A.3 属性(Attribute) 是一种定义在类中、位于任何方法或构造器之外的数据抽象类型。实例变量(Instance variable) 是值对于类的每个实例都唯一的属性。类变量(Class variable) 是被该类的所有实例共享的属性。
- 3.1.A.4 过程抽象(Procedural abstraction) 为过程提供一个名称,使得方法的使用者只需知道它做什么,而无需了解它是如何实现的。通过 方法分解(Method decomposition),程序员通过将类较大的行为拆分为较小的行为,并为每个独立的较小行为创建方法来表示,从而实现这一目标。过程抽象可以提取共享特征以泛化功能,而不是复制代码。这允许代码复用,有助于管理复杂性。
- 3.1.A.5 使用参数可以使过程被泛化,从而允许过程在一组输入值或参数下被重复使用。
- 3.1.A.6 在程序中使用过程抽象允许程序员修改方法的内部实现(使其更快、更高效、占用更少存储空间等),只要保留了方法签名和方法的功能,就不需要通知方法使用者这些更改。
- 3.1.A.7 在实现类之前,花时间为每个类进行设计(包括其属性和行为)是很有帮助的。这种设计可以使用自然语言或图表来表示。

