1. 对象导论
OOP 面向对象编程
C、Basic等语言所在的抽象仍要求在解决问题时基于计算机的解决,而不是基于所解决问题的结构来考虑。
要建立起问题空间的元素和解空间的对象之间一一映射的关系
万物皆对象;程序是对象的集合
每个对象都提供服务
当正在试图开发或者理解一个程序设计时,最好的方法之一就是将对象想象成“服务提供者”。程序本身将向用户提供服务,它将通过调用其他对象提供的服务来实现这一目的。
被隐藏的具体实现
将开发者分为类创建者和类消费者,类创建者目标是构建类,这种类只向类消费者暴露必需的部分,而隐藏其他部分。
访问控制的第一个存在原因是让类消费者无法触及他们不应该触及的部分,第二个存在原因是运行类创建者可以改变类内部的工作方式而不用担心会影响到类消费者。public、private、protected
复用具体实现
事实上,产生一个可复用的对象设计需要丰富的经验和敏锐的洞察力。最简单的复用某个类的方式就是创建一个成员对象,这种方式叫组合,如果组合是动态发生的,那么就叫聚合。
继承在OOP中很重要,所以经常被强调,于是程序员新手就会有这样的印象:处处都应该使用继承。这会导致难以使用和过分复杂的设计。实际上,在建立新类时,应该首先考虑组合,因为它更加简单灵活。