面向对象的思考过程(原书第5版)
上QQ阅读APP看书,第一时间看更新

2.3 尽可能提供最小化的用户接口

当设计类时,通用规则是尽量不要让用户知道类内部的工作原理。为了实现这一点,请遵守以下简单规则:

·只提供给用户绝对需要的东西。实际上这意味着类的接口要尽可能少。当你开始设计一个类时,先从最小化的接口开始。类的设计是迭代式的,所以随后即使你发现最小化的接口可能不合适,也没关系。

·最好只有用户真正需要时才添加接口,不要提供超出用户需求的接口。有时对用户来说,访问某些接口可能会出问题。比如,你不该提供给所有用户关于薪水信息的接口,而应该只提供给需要的用户。

·这次我们用硬件示例来阐述。想象一个用户有一台个人电脑主机,但没有显示器和键盘。显然这台个人电脑主机用处不大。你只提供给了该用户关于该个人电脑最小化的接口。然而,该最小化的接口是不充足的,有必要立即添加接口。

·公共接口定义了用户可以访问什么。你可以刚开始设置所有接口为私有的,这样向用户隐藏了整个类,当程序员开始使用这个类时,再把某些方法公开出来,这些方法就变成了公共接口。

·从用户角度设计类而不是从信息系统的角度设计类是至关重要的。通常类(而不是软件)的设计者设计类时会使其适用一个具体的技术模型。即使该设计者站在用户的视角,它仍然可能是一个技术用户的视角。而这个类的设计往往只考虑了技术因素,而没有基于用户的视角。

·确保设计类时你向真正的用户了解了需求和设计。这些人并不局限于开发人员(包括所有级别的测试)。当构建系统原型时,类通常都会需要更新和演化。