Item 15 16: In public class, uses accessor methods, not public fields

  • 类是package-private的,是要暴露给客户端的。x和y是public的,也是要暴露给客户端的。那么考虑到向后兼容,这两个变量将永久暴露给客户端。
  • 并且,在访问这两个变量的前后,不能添加任何操作。getter就可以,比如提供一个缓存。
class Point{
    public double x;
    public double y;
}

数组是public的话,可能或被客户端改变。可以转换成unModifiableList。

private static final Integer[] integers =new Integer[]{1, 2, 4};
public static final List integetList
            = Collections.unmodifiableList(Arrays.asList(integers));

我们应该尽量少暴露classes,interfaces和成员变量给客户。

发布了35 篇原创文章 · 获赞 0 · 访问量 2493

猜你喜欢

转载自blog.csdn.net/greywolf5/article/details/105180215
今日推荐