面向对象软件设计:提升生产力与降低成本的秘诀
在当今的软件开发领域,我们都渴望做出有意义且令人满意的工作。编写软件的过程本应是充满创造力的享受,我们用代码构建出有价值的事物,如同现代工匠打造着构成现实世界的结构。然而,当软件出现问题时,我们会感到沮丧和挫败,因为高昂的成本让我们的努力似乎付诸东流。本文将深入探讨面向对象软件设计,为你揭示如何编写高效、灵活且能带来愉悦体验的代码。
1. 世界的两种视角:过程式与面向对象
世界既可以从过程式的角度来看待,也可以从面向对象的角度来理解。从过程式的角度,时间是线性流动的,事件按顺序依次发生。比如我们早上起床、刷牙、做咖啡、穿衣然后去上班,这些活动可以用过程式软件来建模,因为我们清楚事件的顺序,只需编写代码依次执行这些操作即可。
而从面向对象的角度,我们身边围绕着各种对象,如配偶、猫、汽车、自行车零件等。每个对象都有自己的行为,它们之间的交互可能是可预测的,但也可能会有意想不到的情况发生。例如,配偶可能会不小心踩到猫,从而引发一系列反应。在这个对象的世界里,新的行为组合会自然出现,我们不需要为每一种可能的交互都编写明确的代码,只需定义好对象的基本行为,将它们放在一起,就会产生意想不到的结果。
面向对象设计(OOD)要求我们从将世界视为预定义过程的集合,转变为将其建模为对象之间传递的一系列消息。OOD的失败可能看起来像是编码技术的问题,但实际上是视角的失败。学习OOD的首要要求是沉浸在对象的世界中,一旦获得了面向对象的视角,其他的就会自然跟进。
2. 设计的价值
软件的开发都有其目的,无论是一个简单的游戏还是一个用于指导放射治疗的程序。幸运的是,我们不必在愉悦和生产力之间做出选择