面向对象编程中的抽象
抽象的字典含义是“以思想、情感或品质的形式存在,而非作为物质对象存在”(来源)。
抽象是一种更高级别的概念或思维方式,当您从业务需求开始设计应用程序时。抽象是一个识别基本实体(类)及其特征(类成员),并从业务需求中舍弃不相关信息,以准备高级别应用程序设计的过程。
抽象始于识别业务需求或功能请求中的名词。名词是人、地点、事物或过程。这些名词可以是您的实体。在找出所需的实体后,您可以收集每个实体的相关特征。特征是与每个实体相关的信息(数据)和行为(方法)。
例如,考虑以下简单的业务需求:
我们需要一个基本的学习管理系统来存储学生、课程和教师数据。我们应该能够知道哪个学生注册了哪个课程,以及该课程的老师是谁。
在上述业务需求中,我们识别出这些名词:学生、课程、教师。这些是我们在设计层面的实体,可以作为类来实现。
现在,我们可以为每个实体识别基本特征,这些特征可以作为每个类中的属性或方法来实现。例如,学生有姓名、地址和电子邮件。他们可能参与一些课外活动,并且可以有不同的肤色、宗教等。
现在,从这些信息中,我们必须选择与我们的应用程序相关且必需的特征。因此,我们可以选择姓名、地址以及他或她注册的课程。我们将舍弃其他信息,因为它们与我们的应用程序不相关,例如肤色、宗教和课外活动。

因此,从业务需求中识别实体和特征(可以作为类及其成员)的过程称为“抽象”。