Tips1:考慮用靜態工廠方法代替構造器
阿新 • • 發佈:2018-12-10
用靜態工廠方法來代替構造器為外界提供物件
描述:
- 靜態工廠方法代替構造器來給外界提供物件,建立物件依然是由構造器來完成的
- 建立物件和提供物件:
- 建立物件的方式:
- 構造器
- 提供物件來哦方式:
- 構造器
- 類中公有的靜態方法
- 建立物件的方式:
- 一般在使用靜態工廠方法時,會根據方法的需要提供private的構造器
- 靜態方法=類方法
- 因為需要類來呼叫,所以需要static
用途(優點):
- 有便於分辨的名字
- 解釋:
- 構造器和類同名,當存在多個構造器時,使用者不便分辨各個構造器的作用
- 靜態工廠方法可以根據功能自定義方法名
- tips:
- 當一個類有多個構造器時,建議使用靜態工廠方法來提供物件
- 解釋:
- 不用每次都建立一個物件,單例
- 解釋:
- 可以避免多次建立物件,節省資源消耗,單例
- 解釋:
- 可以return該類的任何子類
- 解決引數列表相同但意義不同的建構函式不能同時出現的缺陷
- 解釋:
- Person(String job)、Person(String name)這兩個建構函式是不能同時存在的
- 靜態工廠
- public static Person PersonWithName(String name)
- public static Person PersonWithJob(String job)
- 解釋:
- 控制引數,從做填空到做選擇
- 解釋:
- Person("male")、Person("female"),呼叫者需要自己提供性別這兩個引數
- 靜態工廠:
- public static Person aMale(){return new Person("male")}
- 解釋: