靜態工廠方法代替建構函式的優缺點
優點:
1.與建構函式不同,靜態工廠方法具有名字。這個好處可以幫助我們擺脫一個類只能有一個原型相同的建構函式的限制。
2.與建構函式不同,靜態工廠方法每次被呼叫的時候,不要求非得建立一個新的物件(signleton模式)。
3.與建構函式不同,他們可以返回一個原返回型別的子型別物件(服務提供者框架的基礎)。
缺點:
1. 類如果不含公有的或者受保護的建構函式,就不能被子類化。如果一個類沒有公有的或者受保護的建構函式,那麼這個類就不能被繼承。比如:
public class TestObject {
private TestObject(){
System.out.println("new a TestObject!");
}
}
public class SubObject extends TestObject{//編譯報錯,提示父類的建構函式是不可見的
}
2. 與其它靜態方法沒有任何區別。常用的靜態工廠方法:valueof,getInstance
相關推薦
靜態工廠方法代替建構函式的優缺點
優點: 1.與建構函式不同,靜態工廠方法具有名字。這個好處可以幫助我們擺脫一個類只能有一個原型相同的建構函式的限制。 2.與建構函式不同,靜態工廠方法每次被呼叫的時候,不要求非得建立一個新的物件(signleton模式)。 3.與建構函式不同,他們可以返回一個原返回型別
C#的靜態工廠方法與建構函式對比
最近,在與同事進行協同程式設計時,我們開始討論在C#中初始化新物件的最佳方法。我一直是使用建構函式實現,儘管他傾向於靜態工程方法。這引起了關於每種型別的利弊的大量來來回回的討論。 為了說明我所說的內容,這是兩個例子: // Using the constructor SqlConnection myConne
Java中用靜態工廠方法代替構造器的優缺點
Effective Java學習筆記,靜態工廠方法的善用。 一般情況下,對於類而言,我們獲取一個類的例項時,最常用的方法是提供一個公有的構造器。 但是還有一種方法,類可以提供一個公有的靜態工廠方法,它只是個返回類的例項的靜態方法而已。但是靜態工廠方法卻又許多妙用之處。
EffectiveJava讀書筆記——考慮用靜態工廠方法代替構造器(一)
無法 父類 應該 樹結構 對象 如何 log 筆記 工廠類 參考網址:http://blog.csdn.net/mingyunduoshou/article/details/6149758 http:[email protect
用靜態工廠方法代替構造器、遇到多個構造器參數時要考慮用構建器
泛型 不用 推斷 frame public 多參數 eof ram api 一、用靜態工廠方法代替構造器 類通過共有的構造方法可以提供很大的優點:1、構造方法可一有不同的名字,我們可以通過名字區分構造什麽樣子的對象,而構造器名字相同,當參數列表的數目相同 順序不同時 很大的
【Effective Java讀書筆記】創建和銷毀對象(一):考慮使用靜態工廠方法代替構造器
返回對象 boolean 簡化 將不 其他 種類型 bigint color pre 類可以提供一個靜態方法,返回類的一個靜態實例,如Boolean包裝類的一個獲取實例的靜態方法 1 public static Boolean valueOf(boolean b) { 2
Java物件學習之建立物件——使用靜態工廠方法代替構造器缺點
最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。 靜態我們就來簡單介紹一下,使用靜態工廠方法建立物件相較於構造器建立的物件的優缺
Java物件學習之建立物件——使用靜態工廠方法代替構造器優點(四)
最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。 靜態我們就來簡單介紹一下,使用靜態工廠方法建立物件相較於構造器建立的物件的優缺
Java物件學習之建立物件——使用靜態工廠方法代替構造器優點(二)
最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。 靜態我們就來簡單介紹一下,使用靜態工廠方法建立物件相較於構造器建立的物件的優缺
Java物件學習之建立物件——使用靜態工廠方法代替構造器優點(一)
最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。 靜態我們就來簡單介紹一下,使用靜態工
第1條:考慮採用靜態工廠方法代替構造器
第1條:考慮採用靜態工廠方法代替構造器 對類而言,為了讓客戶端獲取它自身的一個例項,最常用的方法就是提供一個公有的構造器。還有一種應該被程式設計師重視的方法:類提供一個公有的靜態工廠方法(static factory method),它只是一個返回類的例項的靜態方法。下面是來自Boolean(基本型別boo
Tips1:考慮用靜態工廠方法代替構造器
用靜態工廠方法來代替構造器為外界提供物件 描述: 靜態工廠方法代替構造器來給外界提供物件,建立物件依然是由構造器來完成的 建立物件和提供物件: 建立物件的方式: 構造器 提供物件來哦方式: 構造器 類中公有的靜態方法 一般在使用靜態工廠方法時,會根據方法的需要提供private的構造器 靜
讀書筆記-《Effective Java》第1條:考慮用靜態工廠方法代替構造器
優勢 它們有名稱 構造器沒有名稱, 當一個類有多個構造器的時候就不容易分清楚哪個是自己想要的。 不必在每次呼叫它們的時候都建立一個新物件 如果新建立的物件的成員屬性是可以重用的, 那麼可以先把第一次建立的物件儲存起來,以後想用的時候就不用
Effective Java-考慮用靜態工廠方法代替構造器
public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } //使用構造器 Boolean b1 = new Boolean(true); //使用靜態工廠方
EffectiveJava讀書筆記- 第1條:考慮用靜態工廠方法代替構造器
考慮靜態工廠方法代替構造器 靜態工廠方法相對於構造器的好處: 1. 靜態工廠方法有名字,相比構造器建立的物件更語義化 最好的例子就是併發庫中的Executors工具類了。 Executors中有多個建立執行緒池的方法: public static
1. 【建立與銷燬物件】考慮用靜態工廠方法代替構造器
本文內容為《Effective Java》的讀書筆記。 對於某一個類,要獲取其物件,通常是使用共有的構造方法new一個。其實還有另一種方法也是經常用到的,那就是靜態工廠方法。 (注:此處的靜態工廠方法不同於工廠模式) 舉個例子: public static Int
effective Java 1 使用靜態工廠方法代替構造器
jdk Boolean類的原始碼:public final class Boolean implements java.io.Serializable, Comparable<Boolean> { public static final
01、考慮用靜態工廠方法代替構造器
優點 1. 有名稱,當一個類需要多個帶有相同引數的構造器時,就可以用靜態工廠方法代替構造器,並且慎重地選擇名稱以便突出它們之間的區別 例如下邊的有關汽車的類,可以使用三個靜態工廠方法返回不同的汽車 public class Car { private String nam
[Effective Java]考慮用靜態工廠方法代替構造器
本文主要介紹如何使用靜態工廠方法已經在那種場合來使用這種方式代替構造方法。 眾所周知,對於類而言,我們為了獲得一個類的例項物件,通常情況下會提供一個公有的(public) 的構造器。當然
Effective Java 學習筆記 使用靜態工廠方法代替構造器
什麼是使用靜態工廠方法代替構造器:建立一個靜態方法,返回值是類的例項 使用靜態工廠方法的好處總結: 1.可以隱藏構造方法,把控物件的建立。可以讓物件是單例,複用已經有的物件,比如Boolean public static final Boolean TRUE = new