1. 程式人生 > >01、靜態工廠方法替代構造器

01、靜態工廠方法替代構造器

//這是一個不能直接例項化的類用來進行註冊和訪問的
public class Services {
private Services() { //禁止例項化
}

private static final Map<String, Provider> providers = new ConcurrentHashMap<String, Provider>();
public static final String DEAFULT_PROVIDER_NAME = "default";

//提供著註冊API Provider Registration API
public static void registerDefaultProvider(Provider provider) {
registerProvider(DEAFULT_PROVIDER_NAME, provider);
}
public static void registerProvider(String name, Provider provider) {
providers.put(name, provider);
}

//服務訪問API Service Access API
public static Service newInstance() {
return newInstance(DEAFULT_PROVIDER_NAME);
}
public static Service newInstance(String name) {
Provider provider = providers.get(name);
if (null == provider) {
throw new IllegalArgumentException("No Provider registered with name" + name);
}
return provider.newService();
}
}

相關推薦

01靜態工廠方法替代構造

//這是一個不能直接例項化的類用來進行註冊和訪問的public class Services { private Services() { //禁止例項化 } private static final Map<String, Provider> providers = new C

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);

(譯)Effective Kotlin系列之考慮使用靜態工廠方法替代構造(一)

翻譯說明: 原標題: Effective Java in Kotlin, item 1: Consider static factory methods instead of constructors 原文地址: https://blog.kotlin-academy.com/eff

【effective java】考慮用靜態工廠方法替代構造

這裡所說的靜態工廠方法就是返回型別例項的靜態方法。 那麼為什麼不使用構造器呢?用構造器方式構造例項不是我們一直約定好的嗎? 嘿嘿 主要原因還是我們的構造器方法規定的太多限制了我們程式的靈活性: 構造器規定一:構造器只能本類例項,不能返回子類例項對吧。 構造器規定二:構造器一

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

優點 1. 有名稱,當一個類需要多個帶有相同引數的構造器時,就可以用靜態工廠方法代替構造器,並且慎重地選擇名稱以便突出它們之間的區別 例如下邊的有關汽車的類,可以使用三個靜態工廠方法返回不同的汽車 public class Car { private String nam

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

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

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

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

1靜態工廠方法代替構造

一、客戶端獲取類的一個例項,有兩種解決方案 最傳統的方法就是提供一個公有的構造器。 類提供一個公有的靜態工廠方法,返回一個類的例項的靜態方法。 二、靜態工廠方法的優點 1、有方法名,可讀性強 不同的靜態工廠方法,有自己的專屬名稱。如果構造器的引數本身沒有確切地描述正被返回的物件,那麼具有名稱的靜態工廠方

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第1條:考慮採用靜態工廠方法代替構造

第1條:考慮採用靜態工廠方法代替構造器 對類而言,為了讓客戶端獲取它自身的一個例項,最常用的方法就是提供一個公有的構造器。還有一種應該被程式設計師重視的方法:類提供一個公有的靜態工廠方法(static factory method),它只是一個返回類的例項的靜態方法。下面是來自Boolean(基本型別boo