1.1 转变观念
对象三个基本特征:
- 封装 : 即内部的改动不会对外部产生影响
- 继承 :通过派生来解决实现的重用问题
- 多态 :无论何时创建了派生类对象,在使用基类对象的地方都可以使用此派生类对象。
对象之间的关系有以下四种:
- 聚合关系 :飞机场有飞机
- 组合关系 :飞机有发动机
- 继承关系 :波音777是一架飞机
- 依赖关系 :飞机需要飞行员
传统面向对象(最好不要这样设计),实现对象的基本特征:
- 基于组件的封装
- 基于实现的继承
1.2 重新认识对象
在现代的程序设计语言中,万物皆对象。千万不要认为把数据和方法装到一个类里面,就是面向对象了,这种认识非常肤浅。我们的目的是设计“高内聚、松耦合”的软件以面对变化。
面向对象的精髓在于“封装”,就是封装对象的一切“实现机制”,而只表现出对象的“意图”
如果把对象类比成一个人的话,那么它应该如此:
- 无知:只了解自己,不了解他人
- 自私:个人自扫门前雪,休管他人瓦上霜,永远不要热心帮助别人。
- 懒惰:一个人就只干一件工作(一种职责,一种变化)
- 孤僻:独立地做自己的事情,尽可能地少联络,少依赖别人
- 内向:不想要别人知道的东西,绝不让别人知道。
在构成实现上,对象应该同时包含数据和行为。