提示十五

2022-05-30  本文已影响0人  飞絮搅青冥

今天来看提示十五:使类和成员的可访问性最小化。

  1. 软件设计的基本原则之一:信息隐藏或封装,一个设计良好的组件隐藏了它的所有实现细节,干净地将它的 API 与它的实现分离开来。然后,组件只通过它们的 API 进行通信,并且对彼此的内部工作一无所知。
  2. 经验法则很简单:让每个类或成员尽可能地不可访问。 正确使用修饰符对信息隐藏很重要。
  3. 对于顶层(非嵌套)的类和接口,只有两种可能的访问级别:包级私有(package private)和公有(public)。
  4. 如果一个包级私有的顶层类(或接口)只是在某一个类的内部被用到, 就应该考虑使它成为那个类的私有嵌套类。
  5. 为了测试将公共类的私有成员指定为包级私有是可以接受的,但是提高到更高的访问级别却是不可接受的。
  6. 带有公共可变字段的类通常不是线程安全的
  7. 非零长度的数组总是可变的,所以类具有公共静态 final 数组字段,或返回这样一个字段的访问器是错误的。

我们系统中对于这一点好像没有特别重视,基本只有一些接口的abstract方法会被置为protected,其他地方则大都直接public,没有控制过这些权限。我感觉可能和我们系统一直是内部人员开发,打包以后不需要发布给公众有关。所以我们在访问控制这一块就没有太多的注意。如果我们从事的是开源的项目,代码可能会被无数人查看修改,那么恰当的访问控制应该可以帮助我们减少很多麻烦,也能帮助阅读代码的其他人减轻很多负担。

上一篇 下一篇

猜你喜欢

热点阅读