第2章 似是而非:面向对象与现实世界
本章的关键词 面向对象的三大要素、现实世界
热身问答
在阅读正文之前,请挑战一下下面的问题来热热身吧。
问题
下列哪一项是“NODM”的正确解释?
A. 20 世纪 60 年代出现的 Simula 67 之前的编程语言的名称
B. 活跃于 20 世纪 70 年代的超级程序员的昵称
C. 20 世纪 80 年代日本作为国家工程推进的人工智能研究工程的简称
D. 20 世纪 90 年代在 IT 领域流行的表示企业系统发展方向的词语
答案
D. 20 世纪 90 年代在 IT 领域流行的表示企业系统发展方向的词语
解析……………………………………………………………………
据笔者所知,并没有名为 NODM 的编程语言或著名程序员。另外,20 世纪 80 年代日本作为国家工程推进的人工智能研究工程的名称是“新一代计算机技术研究所”(Institute for New Generation Computer Technology),简称“ICOT”。
NODM 由网络(Network)、开源(Open source)、小型化(Down-sizing)和多媒体(MultiMedia)这 4 个单词的首字母组成 1,该词在日本 20 世纪 90 年代前半期的 IT 领域广为流行。不过,随着互联网的普及,NODM 所代指的技术都逐渐成了通用技术,因此该词自然也就不再被使用了。
1也有说“O”指面向对象(Object oriented),“M”指多厂商(Multivendor)。
这种表示业界趋势的词语通常被称为“潮词”(buzzword)。20 世纪 90 年代后半期到 21 世纪初,“面向对象”也作为一个潮词被经常使用,其含义是“能比以往更大幅度地提高生产率和可维护性的技术”或者“直接将现实世界的情形表示为软件的创新技术”。
本章重点
使用比喻可以形象地表现 OOP 结构,但如果只使用比喻进行讲解,就无法充分表现 OOP 在实际的软件开发中的作用。如果过于强调编程结构与现实世界的情形的共同点,大家可能会想:“是否可以将在下游工程中创建的软件构件和在上游工程中整理的现实世界的事物等同视之呢?”从而造成混乱。
本书的立场是:下游工程的编程技术和上游工程的归纳整理法是似是而非的。从下一章开始,我们将介绍面向对象的各项技术,并将编程技术和归纳整理法分开进行介绍。在介绍各项技术之前,本章先讨论一下使用比喻进行讲解的“功过”。