一、java語言支持四種類型:java
(1)接口(interface):設計模式
(2)類(class):數組
(3)數組(Array):緩存
(4)基本類型(primitive):惟一非引用類型(reference type)框架
二、方法簽名:包括方法名稱、參數,不包括返回值;設計
《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《對象
三、本條靜態工廠方法與設計模式的工廠方法不是對應等價的;繼承
- 該靜態方法將boolean基本類型值轉換成Boolean對象引用
- 類能夠經過靜態工廠方法提供他的客戶端,而不是構造器
四、靜態工廠方法比構造器優點接口
(1)第一大優點:有名稱:it
- 構造器參數沒有確切描述返回的對象,有名稱的靜態工廠更容易使用,易於閱讀;
- 當須要帶有相同簽名的構造器時,使用靜態工廠代替構造器,使用名稱區別他們;
(2)沒必要每次調用的時候建立一個新對象:
- 不可變類 (見15條)使用預先建立好的實例(緩存建立實例)進行重複利用
- 不可變類:實例不可被修改類
- 避免沒必要要建立重複對象;
- 實例受控的類 靜態工廠能爲重複調用返回相同對象
- 有助於嚴格控制某時刻,哪些實例應該存在
- 能夠確保是一個Singleton或者是不可實例化的
- 不可變類能夠確保不會存在兩個相等的實例
(3)靜態工廠方法能夠返回原返回類型的任意子類型,更加靈活
- API返回對象,對象的類又不會變成公有
- 適用於基於接口的框架
- 基於接口的框架,包含靜態工廠方法和不可實現類
- Collection FrameWork集合接口有32個實現,採用上述方法(不可實例化類Collections導出)
- Collections API導出比32個獨立公有導出,實現起來小得多
- API數量少,概念意義也少
靜態工廠方法返回的對象所屬的類,在編寫工廠方法是能夠不存在
- 服務提供者框架的基礎:如JDBC
- 服務提供者框架:多個服務提供者實現一個服務,系統爲客戶端提供多個實現,並使之解耦
服務提供者框架:
- 組件1服務接口:提供者實現
- 組件2提供者註冊API:系統用來註冊實現的
- 3服務訪問API:客戶端用來獲取服務實例的
- 4服務提供者接口(可選):提供者建立服務實例;若無,反射實例化便可
服務提供者能夠有無數變種
- 服務訪問API能夠利用適配器,返回更加豐富服務接口
(4)第四大優點:建立參數化類型實例,代碼更加簡介
五、靜態工廠方法主要缺點一:
- 類沒有公有或受保護構造器,不能被子類化
- 這樣鼓勵程序使用組合,不是繼承<16條>
六、缺點二:與其餘的靜態方法沒有任何區別