国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

01_考慮用靜態工廠方法代替構造器

2019-11-08 20:08:14
字體:
來源:轉載
供稿:網友

??看到靜態工廠方法,我首先想到的就是java設計模式中的工廠模式,相信很多人都和我一樣,但是在書中很明確的說明:

注意,靜態工廠方法與設計模式中的工廠方法模式不同。本條目中所指的靜態工廠方法并不直接對應于設計模式中的工廠方法。

??靜態工廠方法替代構造器的優勢:

他們有名稱 ??例如:BigInteger(int,int,Random)返回的BigInteger可能為素數,如果采用BigInteger.PRobablePrime的靜態工廠方法來表示,更加的清晰明了。 ?? 一個類只能有一個帶有指定簽名的構造器。要想避開這個,無非就是讓參數列表在順序上有所不同,而這就會導致程序員面對這樣的API時,很難將其記住,從而導致誤操作。 ??由于靜態工廠方法能夠明確的對其進行區分,就不會造成這種誤操作。

不必在每次調用他們的時候都創建一個新對象

避免創建不必要的重復對象,提升性能嚴格控制在某個時刻哪些實例應該存在實例受控可以確保它是一個Singleton或者不可實例化的不可變類可以確保不會存在兩個相等的實例,即當且僅當a==b時才有a.equals(b)為true如果確保上述一點,則可以利用==來代替equals提升性能枚舉類型保證了這一點。

它們可以返回原返回類型的任何子類型對象 ??想必這個就不用多說了,子要是子類型的都可以返回。

在創建參數化類型實例的時候,它們使代碼變得更加簡介Map<String,List<String>> m = new HashMap<String,List<String>>();

??簡化版本

public static <K,V> HashMap<K,V> newInstance(){ retrun new HashMap<K,V>();}

??靜態工廠方法替代構造器的缺點

類如果不含有公有的或者受保護的構造器,就不能被子類化他們與其他的靜態方法實際上沒有任何區別


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 察隅县| 都江堰市| 宿州市| 柳州市| 呼玛县| 祥云县| 潼关县| 合水县| 若羌县| 闸北区| 浏阳市| 抚顺县| 察雅县| 陆河县| 新沂市| 武强县| 奉节县| 武清区| 安国市| 外汇| 东城区| 罗城| 长阳| 绥阳县| 岳阳县| 京山县| 乐昌市| 扎赉特旗| 乌拉特中旗| 吉林市| 林甸县| 噶尔县| 平湖市| 静乐县| 义马市| 新乡市| 尚志市| 沙雅县| 武汉市| 环江| 丰顺县|