《面向对象的思考过程(原书第4版)》一 第2章 如何以面向对象的方式进行思考

简介: 如何以面向对象的方式进行思考 在第1章中,我们学习了面向对象(OO)的基本概念。本书的其他部分会深入讲解这些概念,也会介绍其他的一些知识。不管是否是面向对象的设计,出色的设计都需要考量很多因素。面向对象设计的基本单位是类。

本节书摘来自华章出版社《面向对象的思考过程(原书第4版)》一书中的第2章,[美] 马特·魏斯费尔德(Matt Weisfeld) 著黄博文 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第2章

如何以面向对象的方式进行思考

在第1章中,我们学习了面向对象(OO)的基本概念。本书的其他部分会深入讲解这些概念,也会介绍其他的一些知识。不管是否是面向对象的设计,出色的设计都需要考量很多因素。面向对象设计的基本单位是类。面向对象设计渴望的结果是一个健壮实用的对象模型,换句话说,就是一个完整的系统。
与生活中很多事情一样,在解决问题时,不管对错,并不只有一种方式。同一件事通常有多种处理方式。所以试图用面向对象的方案来进行设计时,不要执迷于一开始就尝试做出一个完美的设计(始终存在提升的空间)。我们真正需要做的是进行头脑风暴,让我们的思想延伸到不同的方向。当解决一个问题时不要尝试遵从任何标准或约定,因为整个想法需要有创造性。
事实上,刚开始时甚至不要先考虑一种具体的编程语言。业务上的首要事情是定位和解决业务问题。要先进行概念分析和设计。只有业务问题需要技术来解决时才需要考虑具体的技术。例如,你不能脱离无线技术来设计一个无线网络。而且通常的现实情况是你有多种软件方案可供选择。
因此,在设计一个系统甚至一个类之前,先思考问题本身。本章探索了面向对象思考这一艺术和科学。
关于思考的任何微小改变都是不平凡的。比如我们反复提及的从结构化开发方式变为面向对象开发的思维。之前已经讲过,该思维的一个误解是结构化开发过程和面向对象的开发过程是互斥的。其实并不是这样。众所周知,之前讨论过,通过包装对象,结构化开发和面向对象开发是可以共存的。事实上,当编写面向对象的应用程序时,到处在用结构化的结构体。我还从没看到过一个程序(无论是否采用了面向对象)没有使用循环、条件判断等。转换到面向对象设计需要不同类型的投资。
从FORTRAN语言(甚至C语言)切换到COBOL语言相当于学习新的语言。然而,从COBOL语言切换到C++、C# .NET、Visual Basic .NET、Objective-C或者Java,则要求学习一种新的思考过程。这正是滥用术语面向对象范式造成的不良后果。当学习面向对象语言时,你必须首先花精力来学习面向对象的概念以及相应的思考过程。如果没有进行这种范式的转变,以下两件事情必发生其一。首先是项目本质上不是真正的面向对象(例如,使用了C++语言但没有使用面向对象特性),其次是项目完全由混乱的对象组成。
培养面向对象思考过程的良好习惯需要注意三个方面,本章会进行详细讲解:
清楚接口和实现之间的区别。
深入理解抽象。
给用户提供尽可能少的接口。
第1章中我们已经接触到了部分概念,接下来我们会深入细节。

相关文章
如何实现面向对象
如何实现面向对象
60 0
什么是面向对象,如何用面向对象的思想写代码
什么是面向对象,如何用面向对象的思想写代码
|
8月前
|
存储 人工智能 运维
面向对象基础
面向对象基础
71 0
面向对象基础
|
Java C++
面向过程、基于对象、面向对象、分析
面向过程、基于对象、面向对象、分析
84 0
面向过程、基于对象、面向对象、分析
|
Linux C语言 C++
面向对象与面向过程最本质的区别
面向对象与面向过程最本质的区别
87 0
|
数据库
面向对象的本质是什么?
  什么是面向对象的本质呢?     万物皆对象?No  抽象?No  复用?No     那到底是什么呢?     万物皆对象。问了几位网友,这是答复之一。看到了某个事物就来一个class?显然没有那么简单。
819 0
|
XML 程序员 uml
《面向对象的思考过程(原书第4版)》一 导读
本书讲述了面向对象思考的过程。选择一本书的主题和书名是个很重要的决定,但如果主题概念性很强,决定就没那么容易了。大部分书籍都只涉及了编程及面向对象设计的某个方面。一些主流的书阐述了诸如面向对象分析、面向对象设计、面向对象编程、设计模式、面向对象的数据结构(XML)、统一建模语言(UML)、面向对象Web开发、面向对象移动开发、进阶面向对象编程语言等主题,当然也包括了其他与面向对象编程相关的主题。
2029 0