工廠方法模式分為三種:普通工廠模式、多個工廠方法模式、靜態工廠方法模式。
1、普通工廠模式:以發郵件和簡訊的例子說明。
結構如下圖所示
主要分為四個步驟:建立各例項的共同介面、建立各功能例項、建立工廠、主程式。請看如下示例**
public
class
factorymethodmodel
}// 建立二者的共同介面
inte***ce
sender
// 建立實現類 mailsender
class
mailsender
implements
sender
} //建立實現類 smssender
class
smssender
implements
sender
}// 建立工廠類
class
sendfactory
else
if("sms".equals(type))else }}
輸出:this is mailsender!
2、多個工廠方法模式:
是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。關係圖:
將上面的**修改如下:
public
class
factorymethodmodel
}// 建立二者的共同介面
inte***ce
sender
// 建立實現類 mailsender
class
mailsender
implements
sender
} //建立實現類 smssender
class
smssender
implements
sender
}// 建立工廠類,有多個工廠方法,分別用來建立不同的物件
class
sendfactory
public sender producesmssender()
}
輸出結果: this is mailsender!
this is smssender
3、靜態工廠方法模式:
將上面的多個工廠方法模式裡的方法置為靜態的,不需要建立例項,直接呼叫即可。
public
class
factorymethodmodel
}// 建立二者的共同介面
inte***ce
sender
// 建立實現類 mailsender
class
mailsender
implements
sender
} //建立實現類 smssender
class
smssender
implements
sender
}// 建立工廠類,有多個工廠方法,分別用來建立不同的物件
class
sendfactory
public
static sender producesmssender()
}
輸出結果: this is mailsender!
this is smssender
總體來說,工廠模式適合:凡是出現了大量的產品需要建立,並且具有共同的介面時,可以通過工廠方法模式進行建立。在以上的三種模式中,第一種如果傳入的字串有誤,不能正確建立物件,第三種相對於第二種,不需要例項化工廠類,所以,大多數情況下,我們會選用第三種——靜態工廠方法模式。
Java設計模式之工廠方法模式
l 工廠方法模式概述 工廠方法模式中抽象工廠類負責定義建立物件的介面,具體物件的建立工作由繼承抽象工廠的具體類實現。l 優點 客戶端不需要在負責物件的建立,從而明確了各個類的職責,如果有新的物件增加,只需要增加乙個具體的類和具體的工廠類即可,不影響已有的 後期維護容易,增強了系統的擴充套件性 l 缺...
java設計模式之工廠方法模式
工廠方法模式分為三種 1 普通工廠模式 2 多個工廠模式 3 靜態工廠模式 1 定義乙個介面類 package com.dairuijie.factory 動物介面 author drjyy public inte ce anaimal 2 定義實現介面的類 package com.dairuiji...
Java設計模式之工廠方法模式
一 工廠方法 factory method 模式 工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個 抽象工廠 角色,僅負責具體工廠子類必須實現的介面,這樣進一步 抽象化的好處是使得工廠方法 模式可以使系統在不修改具體工...