您的位置:首页 > Web前端

Effective Java 第14条:在公有类中使用访问方法而非公有域

2013-08-01 18:01 288 查看
转载: http://yanfeichening.iteye.com/blog/1497657

如果类可以在它所在包的外部进行访问,就提供访问方法。

如果类是包私有的,或者私有的嵌套类,直接暴露它的数据域并没有本质的错误。

总之,公有类永远都不应该暴露可变的域。虽然还是有几个问题,但是让公有类暴露不可变的域,危害比较小。但是,有时候需要会用到包级私有的或者私有的嵌套类来暴露域,无论这个类是可变还是不可变。

Java代码

// Public class with exposed immutable fields - questionable

public final class Time {

private static final int HOURS_PER_DAY = 24;

private static final int MINUTES_PER_HOUR = 60;

public final int hour;

public final int minute;

public Time(int hour, int minute) {

if (hour < 0 || hour >= HOURS_PER_DAY)

throw new IllegalArgumentException("Hour: " + hour);

if (minute < 0 || minute >= MINUTES_PER_HOUR)

throw new IllegalArgumentException("Min: " + minute);

this.hour = hour;

this.minute = minute;

}

// Remainder omitted

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐