程序员的底层思维
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4.1 面向对象的核心是抽象

作为当今最重要的软件工程技术之一,面向对象(Object Oriented,OO)技术实际上由3个部分组成,分别是面向对象分析(Object Oriented Analysis,OOA)、面向对象设计(Object Oriented Design,OOD)和面向对象编程(Object Oriented Programming,OOP)。

OOA是一种分析方法,这种方法利用从问题域的词汇表中找到的类和对象来分析需求,也就是我们日常说的“找名词”。当然,实际情况不仅仅是找名词这么简单,更多时间,我们需要使用抽象思维从复杂的需求中挖掘关键概念和实体。

OOD是一种设计方法,包括面向对象分解的过程和表示法,这种表示法用于展现被设计系统的逻辑模型和物理模型、静态模型和动态模型。通常使用UML提供的那套表示法工具。

OOP是我们常用并且很熟悉的,当今的编程语言基本都是面向对象的。OOP是一种实现方法,在这种方法中,程序被组织成许多组相互协作的类,类之间会通过继承、组合、使用形成一定的层次结构。

OOA、OOD和OOP之间的关系是,OOA的结果可以帮助我们设计OOD的模型,而OOD的结果可以作为蓝图,最终利用OOP方法实现一个系统。

由此可见,面向对象技术与传统的结构化设计方法是不同的,它要求以一种不同的方式来思考问题。这种思考方式对我们的抽象能力提出了更高的要求,因为不管是OOA的问题域分析,还是OOD和OOP的对象建模,编程实现都离不开抽象思维。[1]