Java設計模式之 工廠方法模式

2021-07-23 19:56:58 字數 2102 閱讀 7051

工廠方法模式分為三種:普通工廠模式、多個工廠方法模式、靜態工廠方法模式。

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 模式 工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個 抽象工廠 角色,僅負責具體工廠子類必須實現的介面,這樣進一步 抽象化的好處是使得工廠方法 模式可以使系統在不修改具體工...