1. 程式人生 > >靜態工廠方法優缺點個人理解

靜態工廠方法優缺點個人理解

靜態工廠方法是很常用的一種設計模式(嚴格來說,並不是),總結優缺點如下:

優點:
1、可以有合理的名稱。
2、不必每次呼叫的時候建立新的例項。比如單例模式。
3、可以返回原型別的任何子型別。
4、優化整體程式碼結構,增強可閱讀性。

缺點:
1、“靜態工廠方法的主要缺點在於,類如果不含有公有的或者受保護的構造器,就不能被子類化”。上面這句話,摘自“effective java”初看比較詫異,有種不知所云的感覺。後來思考了一下,這句話大概是這麼理解的。
一個類若是選擇靜態工廠,那麼一般會把建立方法標誌成私有的,而用建立方法去呼叫(比如,getInstance)。這會影響其子類化的可實現性。

2、本質上與其他靜態方法並無任何缺陷,沒有明確標識。

相關推薦

靜態工廠方法優缺點個人理解

靜態工廠方法是很常用的一種設計模式(嚴格來說,並不是),總結優缺點如下: 優點: 1、可以有合理的名稱。 2、不必每次呼叫的時候建立新的例項。比如單例模式。 3、可以返回原型別的任何子型別。 4、優化整體程式碼結構,增強可閱讀性。 缺點: 1、“靜

代理模式,簡單(靜態工廠模式,單例模式,模板方法模式個人理解

簡言: java中總共有23種設計模式,每個模式的出現都是為了解決某一方面的問題,所以這23種設計模式有他們各自適用的地方(廢話有點多),而設計模式的產生主要是為了降低類與類之間的耦合度。下面我們就簡單的瞭解一下幾種設計模式及使用的地方。 1.單例模式:

Java中用靜態工廠方法代替構造器的優缺點

Effective Java學習筆記,靜態工廠方法的善用。 一般情況下,對於類而言,我們獲取一個類的例項時,最常用的方法是提供一個公有的構造器。 但是還有一種方法,類可以提供一個公有的靜態工廠方法,它只是個返回類的例項的靜態方法而已。但是靜態工廠方法卻又許多妙用之處。

靜態工廠方法代替建構函式的優缺點

  優點: 1.與建構函式不同,靜態工廠方法具有名字。這個好處可以幫助我們擺脫一個類只能有一個原型相同的建構函式的限制。 2.與建構函式不同,靜態工廠方法每次被呼叫的時候,不要求非得建立一個新的物件(signleton模式)。 3.與建構函式不同,他們可以返回一個原返回型別

【代碼優化】考慮使用靜態工廠方法取代構造器

ava tracking 什麽事 依據 mod true data -m span 靜態工廠方法與設計模式中的工廠方法模式不同,和設計模式中的工廠方法模式不直接相應。 使用靜態工廠方法比構造器的優勢: 第一、靜態工廠方法是有名稱的,而構造器是通過

EffectiveJava讀書筆記——考慮用靜態工廠方法代替構造器(一)

無法 父類 應該 樹結構 對象 如何 log 筆記 工廠類 參考網址:http://blog.csdn.net/mingyunduoshou/article/details/6149758 http:[email protect

靜態工廠方法+服務提供者框架模板

tro class return sse strong ava hash [] nes Provider.java public interface Provider { Service newService(); } Service.java public in

實例/靜態工廠方法得到bean

create spa tor bean .config return col pan creat <bean id="a" class="com.yundaex.wms.config.TestBeanChild" /> <bean id="b

靜態工廠方法代替構造器、遇到多個構造器參數時要考慮用構建器

泛型 不用 推斷 frame public 多參數 eof ram api 一、用靜態工廠方法代替構造器 類通過共有的構造方法可以提供很大的優點:1、構造方法可一有不同的名字,我們可以通過名字區分構造什麽樣子的對象,而構造器名字相同,當參數列表的數目相同 順序不同時 很大的

Effective Java 第三版——1. 考慮使用靜態工廠方法替代構造方法

plain 額外 body image 單獨 oba car 翻譯 一個 Tips 《Effective Java, Third Edition》一書英文版已經出版,這本書的第二版想必很多人都讀過,號稱Java四大名著之一,不過第二版2009年出版,到現在已經將近8年的時

【Effective Java讀書筆記】創建和銷毀對象(一):考慮使用靜態工廠方法代替構造器

返回對象 boolean 簡化 將不 其他 種類型 bigint color pre 類可以提供一個靜態方法,返回類的一個靜態實例,如Boolean包裝類的一個獲取實例的靜態方法 1 public static Boolean valueOf(boolean b) { 2

Spring(十三):使用工廠方法來配置Bean的兩種方式(靜態工廠方法&實例工廠方法

color 示例 簡單的 rgs icc tostring pac ng- clas 通過調用靜態工廠方法創建Bean 1)調用靜態工廠方法創建Bean是將對象創建的過程封裝到靜態方法中。當客戶端需要對象時,只需要簡單地調用靜態方法,而不需要關心創建對象的具體細節。 2

一、考慮使用靜態工廠方法替代構造函數

fault 變化 擁有 def enum 可選 不能 鼓勵 ice 1、何為靜態工廠方法   靜態工廠方法就是一個返回類實例的靜態方法。比如Boolean的valueof方法: 1 public static final Boolean TRUE = new Boolea

Java物件學習之建立物件——使用靜態工廠方法代替構造器缺點

最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。       靜態我們就來簡單介紹一下,使用靜態工廠方法建立物件相較於構造器建立的物件的優缺

Java物件學習之建立物件——使用靜態工廠方法代替構造器優點(四)

最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。       靜態我們就來簡單介紹一下,使用靜態工廠方法建立物件相較於構造器建立的物件的優缺

Java物件學習之建立物件——使用靜態工廠方法代替構造器優點(二)

最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。       靜態我們就來簡單介紹一下,使用靜態工廠方法建立物件相較於構造器建立的物件的優缺

Java物件學習之建立物件——使用靜態工廠方法代替構造器優點(一)

      最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。       靜態我們就來簡單介紹一下,使用靜態工

Effective Java 第三版讀書筆記——條款1.考慮使用靜態工廠方法替代構造器

lean jdb 底層 public lasso 基本 win inter nds 獲取一個類的實例的傳統方法是使用公開的構造器,除此之外,一個類還可以提供公開的靜態工廠方法(static factory method)來返回它的實例。例如 Boolean 類中的 valu

Effective Java 第三版閱讀筆記——條款1.考慮使用靜態工廠方法替代構造器

獲取一個類的例項的傳統方法是使用公開的構造器,除此之外,一個類還可以提供公開的靜態工廠方法(static factory method)來返回它的例項。例如 Boolean 類中的 valueOf 方法,這個方法將基本型別 boolean 轉換為一個 Boolean 物件的引用: pub

1.考慮用靜態工廠方法替代構造器

public final class Boolean implements java.io.Serializable,Comparable<Boolean>{ public static final Boolean TRUE = new Boolean(true);