1. 程式人生 > >Tips1:考慮用靜態工廠方法代替構造器

Tips1:考慮用靜態工廠方法代替構造器

用靜態工廠方法來代替構造器為外界提供物件

描述:

  • 靜態工廠方法代替構造器來給外界提供物件,建立物件依然是由構造器來完成的
  • 建立物件和提供物件:
    • 建立物件的方式:
      • 構造器
    • 提供物件來哦方式:
      • 構造器
      • 類中公有的靜態方法
  • 一般在使用靜態工廠方法時,會根據方法的需要提供private的構造器
  • 靜態方法=類方法
    • 因為需要類來呼叫,所以需要static

用途(優點):

  1. 有便於分辨的名字
    • 解釋:
      • 構造器和類同名,當存在多個構造器時,使用者不便分辨各個構造器的作用
      • 靜態工廠方法可以根據功能自定義方法名
    • tips:
      • 當一個類有多個構造器時,建議使用靜態工廠方法來提供物件
  2. 不用每次都建立一個物件,單例
    • 解釋:
      • 可以避免多次建立物件,節省資源消耗,單例
  3. 可以return該類的任何子類
  4. 解決引數列表相同但意義不同的建構函式不能同時出現的缺陷
    • 解釋:
      • Person(String job)、Person(String name)這兩個建構函式是不能同時存在的
      • 靜態工廠
        • public static Person PersonWithName(String name)
        • public static Person PersonWithJob(String job)
  5. 控制引數,從做填空到做選擇
    • 解釋:
      • Person("male")、Person("female"),呼叫者需要自己提供性別這兩個引數
      • 靜態工廠:
        • public static Person aMale(){return new Person("male")}