第3條:用私有構(gòu)造器或者枚舉類型強(qiáng)化Singleton屬性
Singleton指僅僅被實(shí)例化一次的類,通常被用來代表那些本質(zhì)上唯一的系統(tǒng)組件。如果項(xiàng)目通過Spring構(gòu)建,可以通過Spring來管理Bean,默認(rèn)情況下在Bean的為單例模式。
第4條:通過私有構(gòu)造器強(qiáng)化不可實(shí)例化的能力
有的類只有靜態(tài)方法和靜態(tài)域時(shí),就可以定義私有構(gòu)造器來明確說明該類不可實(shí)例化,一般多用于工具類。
第14條:在公有類中使用訪問方法而非公有域
簡書面向?qū)ο笤O(shè)計(jì)的思想,對(duì)于可變類來說,應(yīng)該用包含私有域的公有設(shè)值方法(setter)類代替。例如:
public class Point {
private double x;
private double y;
public double getX(){
return x;
}
public double getY(){
return y;
}
public void setX(double x){
this.x = x;
}
public void setY(double y){
this.y = y;
}
}
如果類可以在它所在的包外部進(jìn)行訪問,就提供訪問方法 ,避免直接訪問類的域。如果類是包級(jí)私有的,或者是私有的嵌套類,直接暴露它的數(shù)據(jù)域并沒有本質(zhì)的錯(cuò)誤。