如何以对象方式思考
OO设计所期望的最终结果是一个健壮、功能完备的对象模型,换句话说,也就是一个完备的系统。
将会讨论以下几个问题:
- 了解接口和实现之间的区别
- 以更抽象的方式思考
- 尽可能为用户提供最小接口
了解接口和实现之间的区别
在设计类时,必须了解用户需要知道什么以及用户不需要知道什么。
适当的构造类分为两个部分设计—-接口和实现
接口
在最理想的情况下,应该只为最终用户提供他们所需要的服务。
明确用户
在设计一个类时,也许最重要的就是明确类的受众或用户。
实现
实现的细节对用户是隐藏的。需要记住的一个实现的目标:改变实现不需要同时改变用户的代码。
接口/实现示例
根据需求提供相应的接口,例如一个简单的数据库读取器:
DataBaseReader类的一个UML类图
公共接口
如果一个方法是公共的,应用程序员就可以访问它,因此,它可以认为是类接口的一部分。
对象持久性
是指保存对象的状态,从而可以在以后恢复并使用。没有持久存储的对象一旦出了作用域实际上就已经死亡了。例如可以把对象的状态保存在数据库中。
设计接口是使用抽象思维
抽象接口通常是实现一个优秀可重用OO设计所采用的做法。
尽可能为用户提供最小接口
要做到这一点,需要遵守以下规则:
- 只为用户提供他们确实需要的东西
- 最好是当用户确实需要时才增加接口,而不要为用户提供他们不需要的接口
- 公共接口定义用户能够访问的信息
- 用用户角度设计类,而不要从信息系统的角度进行设计
- 确保设计类时将与真正使用这个类的人(不只是开发人员)反复考虑需求和设计
小结
关于OO思维过程的问题并不是固定的,采用OO方式做事与其说是一门科学不如说是一门艺术。你可以用自己的方式来描述OO思维。