二 建立模式 工廠方法模式

2021-09-02 18:14:24 字數 1665 閱讀 3734

一、工廠方法模式

工廠方法模式一般分為:普通簡單工廠、多方法簡單工廠、靜態方法簡單工廠。

二、普通

就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。首先看下關係圖(我們舉乙個傳送郵件和簡訊的例子):

首先,建立二者的共同介面:

public inte***ce sender
其次,建立實現類:

public class mailsender implements sender 

}public class smssender implements sender

}

最後,建工廠類:

public class sendfactory  else if ("sms".equals(type))  else 

}}

我們來測試下:

public class factorytest 

}

輸出:this is sms sender!

三、多個工廠方法模式

是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。關係圖:

將上面的**做下修改,改動下sendfactory類就行,如下:

public class sendfactory 

public sender producesms()

}

測試類如下:

public class factorytest 

}

輸出:this is mailsender!

三、靜態工廠方法模式

將上面的多個工廠方法模式裡的方法置為靜態的,不需要建立例項,直接呼叫即可。

public class sendfactory 

public static sender producesms()

}

四、總結總體來說,工廠模式適合:凡是出現了大量的產品需要建立,並且具有共同的介面時,可以通過工廠方法模式進行建立。在以上的三種模式中,第一種如果傳入的字串有誤,不能正確建立物件,第三種相對於第二種,不需要例項化工廠類,所以,大多數情況下,我們會選用第三種——靜態工廠方法模式。

factory—追mm少不了請吃飯了,麥當勞的雞翅和肯德基的雞翅都是mm愛吃的東西,雖然口味有所不同,但不管你帶mm去麥當勞或肯德基,只管向服務員說「來四個雞翅」就行了。麥當勞和肯德基就是生產雞翅的factory。

工廠模式:客戶類和工廠類分開。消費者任何時候需要某種產品,只需向工廠請求即可。消費者無須修改就可以接納新產品。缺點是當產品修改時,工廠類也要做相應的修改。

建立模式 工廠方法模式

一 工廠方法模式說明 工廠方法模式是簡單工廠模式的擴充套件,實現了某一具體的工廠類生產某一具體的產品,使工廠類生產的產品更加具體,而這些具體的工廠類都從抽象的工廠介面繼承。工廠方法模式的實現圖如下所示 例如 工廠類中的 負責生產 pea ctory 負責生產 pear。二 工廠方法模式設計 採用工廠...

工廠方法模式 工廠方法模式 二

工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...

工廠模式二 工廠方法模式

使用者只需要關心產品對應的工廠,不需要關心建立細節。例如貓和狗都屬於動物一類,都具有吃飯這個功能。先定義介面ianimal public inte ce ianimal實現介面ianimal介面cat類和dog類 public class cat implements ianimal public ...