《Effective Java》第一條 :考慮用靜態方法而不是構造器

考慮用靜態方法而不是構造器:

靜態工廠方法的優勢:

  • 比起構造器,靜態工廠方法的一大優勢是,它們有名字。
  • 靜態工廠方法的第二大優勢是,不像構造器,靜態工廠方法不必在每次被調用時都產生一個新的對象。
  • 靜態工廠方法的第三大優勢是,不像構造器,靜態工廠方法能返回原返回類型的任意子類型的對象。
  • 靜態工廠的第四大優勢是,可以根據調用時傳入的不同參數而返回不同類的對象。
  • 靜態工廠的第五大優勢是,在編寫包含該方法的類時,返回對象的類不需要存在。

靜態工廠方法的不足:

  • 只提供靜態工廠方法的主要限制在於,沒有公有或者保護構造方法的類不能子類化。
  • 靜態工廠方法的第二個不足之處是程序員難以找到他們。

靜態工廠方法的命名範例:

  • from—這種方式通過給方法傳入單個參數,然後返回該類型的相應實例
  • of—這種方式通過給方法傳入多個參數,然後返回一個包含了這些參數的該類型實例
  • valueOf—from和of更爲詳細的替代方式
  • instance or getInstance—返回一個由參數(如果有的話)描述的實例,但不能說具有相同的值
  • create or newInstance—類似於instance或getInstance, 只不過保證每次調用都返回一個新的實例
  • getType—類似於getInstance,但一般在工廠方法包含在不同類的情況下使用。Type是工廠方法返回的對象的類型
  • newType—類似於newInstance,但一般在工廠方法包含在不同類的情況下使用。Type是工廠方法返回的對象的類型
  • type—getType和newType簡潔的替換方式

全文:《Effective Java》第三版中文版

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章