动机
重构往往促使你修改函数的可见度。提高函数可见度的情况很容易想象:另一个类需要用到某个函数,因此你必须提高该函数的可见度。但是要指出一个函数的可见度是否过高,就稍微困难一些。理想状态下,你可以使用工具检查所有函数,指出可被隐藏起来的函数。即使没有这样的工具,你也可以进行这样的检查。
一种特别常见的情况是:当你面对一个过于丰富、提供了过多行为的接口时,就值得将非必要的取值函数和设值函数隐藏起来。尤其当你面对的是一个只有简单封装的数据容器时,情况更是如此。随着越来越多行为被放入这个类,你会发现许多取值/设值函数不再需要公开,因此可以把它们隐藏起来。如果你把取值/设值函数设为private,然后在所有地方都直接访问变量,那就可以放心移除取值/设值函数了。
做法
- 经常检查有没有可能降低某个函数的可见度。
1.1. 使用lint一类的工具,尽可能频繁地检查。当你在另一个类中移除对某个函数的调用时,也应该进行检查。
1.2. 特别对设值函数进行上述的检查。 - 尽可能降低所有函数的可见度。
- 每完成一组函数的隐藏之后,编译并测试。