一、工廠方法模式
工廠方法模式一般分為:普通簡單工廠、多方法簡單工廠、靜態方法簡單工廠。
二、普通
就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。首先看下關係圖(我們舉乙個傳送郵件和簡訊的例子):
首先,建立二者的共同介面:
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 ...