採用Clone()方式創建對象

Java語言裏面的所有類都默認繼承自java.lang.Object類,在java.lang.Object類裏面有一個clone()方法,JDK API的說明文檔裏面解釋了這個方法會返回Object對象的一個拷貝。我們需要說明兩點:一是拷貝對象返回的是一個新對象,而不是一個對象的引用地址;二是拷貝對象與用new關鍵字操作符返回的新對象的區別是,這個拷貝已經包含了一些原來對象的信息,而不是對象的初始信息,即每次拷貝動作不是一個針對全新對象的創建。

當我們使用new關鍵字創建類的一個實例時,構造函數中的所有構造函數都會被自動調用。但如果一個對象實現了Cloneable接口,那麼我們可以通過調用它的clone()方法,注意,clone()方法不會調用任何構造函數。

代碼3-1所示是工廠模式的一個典型實現,工廠模式是採用工廠方法代替new操作的一種模式,所以工廠模式的作用就相當於創建實例對象的new操作符。

代碼清單3-1 創建新對象

public static CreditgetNewCredit()

{

    return new Credit();//創建一個新的Credit對象

}

如果我們採用clone()方法的方式創建對象,那麼原有的信息可以被保留,因此創建速度會加快。如清單3-2所示,改進後的代碼使用了clone()方法。

代碼清單3-2 使用了clone()方法

private static CreditBaseCredit = new Credit();

public static Credit getNewCredit()

{

    return (Credit)BaseCredit.clone();

}



歡迎關注麥克叔叔每晚10點說,讓我們一起交流與學習。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章