如果类可以在他所在的包的外部进行访问,就提供访问方法。
如果类是包私有的,或者私有的嵌套类,直接暴露他的数据域并没有本质的错误。
总之,公有类永远都不应该暴漏可变的域。虽然还是有几个问题,但是让公有类暴漏不可变的域,起危害比较小。但是,有时候需要会用到包级私有的或者私有的嵌套类来暴漏域,无论这个类是可变还是不可变。
如果类是包私有的,或者私有的嵌套类,直接暴露他的数据域并没有本质的错误。
总之,公有类永远都不应该暴漏可变的域。虽然还是有几个问题,但是让公有类暴漏不可变的域,起危害比较小。但是,有时候需要会用到包级私有的或者私有的嵌套类来暴漏域,无论这个类是可变还是不可变。
Demo:
package cn.partner4java.test;
public class BeanTest {
private static final int HOURS_PER_DAY = 24;
private static final int MINUTES_PER_HOUR = 60;
public final int hour;
public final int minute;
private String username;
public BeanTest(int hour,int minute) {
this.hour = hour;
this.minute = minute;
}
public String getUsername() {
return username;
}
}
本文探讨了在不同访问级别下,类及其成员变量暴露的合理性和潜在风险。强调了公有类不应暴露可变的数据域,并给出了通过私有嵌套类暴露数据域的例子。
2762

被折叠的 条评论
为什么被折叠?



