Skip to Main Content
计算机科学导论:跨学科方法
book

计算机科学导论:跨学科方法

by 罗伯特 塞奇威克, 凯文 韦恩
August 2021
Beginner to intermediate content levelBeginner to intermediate
450 pages
19h
Chinese
Pearson
Content preview from 计算机科学导论:跨学科方法

3.3 设计数据类型

创建数据类型的能力使得每个程序员都变成一个语言设计者。我们不再局限于处理内置于语言中的数据类型和相关操作,而是可以很容易地创建自己的数据类型并编写相应的客户程序。例如,Java没有预定义的复数数据类型,但是你可以定义Complex数据类型,并编写客户程序,如Mandelbrot。同样,Java没有内置的海龟绘图工具,但是我们可以定义Turtle并编写客户程序以便立即利用这个抽象。即使Java确实包含了一个特定的工具,我们也可能更喜欢根据自己的特定需求创建单独的数据类型,就像我们自定义Picture、In、Out和Draw等类型一样。

基于上述观点,编写一个程序时,首要任务就是尽量理解我们需要的数据类型。程序开发在此时变为一项设计活动。在本节中,我们特别关注API的开发,它是任何程序开发的关键步骤。我们需要考虑不同的选择方案,了解其对客户程序和实现的影响,并不断优化设计方案,以在客户需求和可能的实现策略之间寻求平衡。

如果你选修了系统编程课程,那么会了解这种设计任务是构建大型系统的关键行为,并且在编写大型程序时,Java及其他类似语言包含强大的高层机制,支持编写大型程序时的代码复用。这些机制中有许多是面向构建大型系统的专家而设计的,但其一般方法也适用于所有的程序员,其中一些机制适用于编写小型程序。

在本节中,我们将讨论封装、不变性和继承,关注这些设计理念在数据类型设计中的应用,以实现模块化程序设计,便于调试程序,提高编写清晰而正确的代码的效率。

在本节最后,我们将讨论一种重要的Java运行时机制,用于检查设计时的假设与实际运行时的条件是否匹配。这些功能对于开发可靠软件具有宝贵的价值。

设计API 在3.1节,我们编写了使用API的客户程序。在3.2节,我们实现了API。现在我们讨论设计API时的挑战。按照上述顺序来讨论这些主题是比较恰当的,因为程序设计花费的大部分时间主要在于编写客户程序。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

数据科学之编程技术:使用R进行数据清理、分析与可视化

数据科学之编程技术:使用R进行数据清理、分析与可视化

迈克尔 弗里曼, 乔尔 罗斯
C语言核心技术(原书第2版)

C语言核心技术(原书第2版)

Peter Prinz, Tony Crawford

Publisher Resources

ISBN: 9787111641414