Effective java 第二章 對象 (1)

來源:互聯網
上載者:User

標籤:

這章主要說了對象的 建立和銷毀,怎樣避免無謂,過多的對象,以及建立對象的幾個方法

 一.使用靜態Factory 方法代替構造器,

正常的建立類的方法    OneObject  oneObject=new OneObject();       這樣寫的話,每次都會建立一個新的對象

靜態Factory 方法            

public class OneObject {

private static OneObject oneObject=new OneObject();
private String name;
public static OneObject getOneObject(){

return oneObject;
};

}

1.這樣寫的話,不管使用幾次 getOneObject() ,也只有一個OneObject 對象

2.  在增加一個方法 ,getOneObject2 ,其中TowObject,ThreeObjectshix是OneObject的子類對象

public static OneObject getOneObject2(Integer type){
if(type==1){
return new TowObject();
}
else{
return new ThreeObject();
}
};

這樣 會根據參數的不同產生OneObject不同的子類

書上說還有幾個好處,什麼名字好記啊之類的就不意義列舉了

 

二. 當Bean有很多屬性時,可以考慮用構建器

package TheOne;

public class TwoObject {
private int a;
private int b;
private int c;
public static class Bulider {
private int a;
private int b;
private int c;
public Bulider a(int a) {
this.a = a;
return this;
}
public Bulider b(int b) {
this.b = b;
return this;
}
public Bulider c(int c) {
this.c = c;
return this;
}
public TwoObject bulid() {
return new TwoObject(this);
}
}
public TwoObject(Bulider b){
this.a=b.a;
this.b=b.b;
this.c=b.c;
}
public static void main(String[] args) {
TwoObject to=new TwoObject.Bulider().a(1).b(2).bulid();
System.out.println(to.a);
}
}

這樣寫起來可讀性性更高,但是也有一些缺點,就是構造Bulider的時候開銷稍微高點,如果是注重效能的情況下,就不必考慮

 

Effective java 第二章 對象 (1)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.