第2章 如何以对象方式思考
第1章 中,我们学习了基本的面向对象(OO)概念。本书余下的部分将更深入地分析这些概念,还将介绍另外一些概念。不管是不是OO设计,好的设计都要考虑很多因素。OO设计的基本单元是类。OO设计所期望的最终结果是一个健壮、功能完备的对象模型,换句话说,也就是一个完备的系统。
与日常生活的大多数情况一样,解决一个问题没有纯粹的对与错。同一个问题往往可能有多种不同的处理方法。所以试图设计一个O0解决方案时,不要想着一上来就完成一个完美的设计(总会有需要改进的地方)。真正需要的是进行头脑风暴,让你能从不同方向展开你的思维过程。尝试解决一个问题时,不要试图遵照任何标准或约定,因为关键就是要有创造性。
实际上,这个过程开始时,甚至不要考虑特定的编程语言。首要的是找出并解决业务问题。首先完成概念分析和设计。只有当特定技术对于解决业务问题至关重要时才去考虑它,例如,如果脱离无线技术可能无法设计一个无线网络。不过,通常有多种软件解决方案可以考虑。
因此,开始设计一个系统之前,甚至在开始设计一个类之前,先要全面地考虑这个问题,充分享受思考的快乐!这一章中,我们将研究OO方式的思维,这不仅是一门科学,更应算是一门艺术。
思维方式的任何重大改变都是非同小可的。比如,人们一直在讨论从结构化到00开发的转变。这种争论的一个副作用是产生了一个误解,认为结构化和面向对象开发是互斥的。但事实并非如此。从上一章有关包装器的讨论可以了解到,结构化和面向对象开发可以并存。实际上,编写一个OO应用时会大量使用结构化构造。我从未见过没有使用循环和if句等构造的OO代码。不过,要真正切换Noo设计确实需要多方面的努力。
展开
——Bill McCaxty,资深技术专家,0bject-Oriented Design in Java作者 “本书以生动有趣的风格深刻阐述了面向对象之道,很好地做到了深入浅出,不仅适合初学者,有经验的程序员也能从中获益。”
——coderanch.com