摘要:簡(jiǎn)介工廠方法是一種創(chuàng)建型模式,它定義一個(gè)創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類,可以使一個(gè)類的實(shí)例化延遲到其子類。類圖是一個(gè)產(chǎn)品接口,是具體的產(chǎn)品,聲明工廠方法,返回一個(gè)類型的對(duì)象,是具體工廠,定義了工廠方法,返回一個(gè)具體的。
1. 簡(jiǎn)介
??工廠方法是一種創(chuàng)建型模式,它定義一個(gè)創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類,可以使一個(gè)類的實(shí)例化延遲到其子類。它具有良好的擴(kuò)展性,當(dāng)有新產(chǎn)品類增加時(shí),只需要新增一個(gè)具體的工廠類。調(diào)用者也不需要關(guān)心具體的產(chǎn)品及其創(chuàng)建過(guò)程,只需要知道它的接口。
2. UML類圖??Product是一個(gè)產(chǎn)品接口,ConcreteProduct是具體的產(chǎn)品,Creator聲明工廠方法,返回一個(gè)Product類型的對(duì)象,ConcreteCreator是具體工廠,定義了工廠方法,返回一個(gè)具體的Product。
3. 實(shí)例Product接口:
public interface Phone { void show(); }
具體產(chǎn)品:
public class IPhone implements Phone { public void show() { System.out.println("apple phone"); } } public class Galaxy implements Phone { public void show() { System.out.println("samsung phone"); } }
抽象工廠:
public interface Creator { Phone createPhone(); }
具體工廠:
public class AppleCreator implements Creator { public Phone createPhone() { return new IPhone(); } } public class SamsungCreator implements Creator { public Phone createPhone() { return new Galaxy(); } }
測(cè)試
public class Test { public static void main(String[] args) { Creator creator = new SamsungCreator(); Phone phone = creator.createPhone(); phone.show(); } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/76470.html
摘要:基于工廠角色和產(chǎn)品角色的多態(tài)性設(shè)計(jì)是工廠方法模式的關(guān)鍵。工廠方法模式之所以又被稱為多態(tài)工廠模式,是因?yàn)樗械木唧w工廠類都具有同一抽象父類。工廠方法模式總結(jié)工廠方法模式是簡(jiǎn)單工廠模式的進(jìn)一步抽象和推廣。 JavaScript工廠模式 首先需要說(shuō)一下工廠模式。工廠模式根據(jù)抽象程度的不同分為三種 簡(jiǎn)單工廠模式 工廠方法模式 抽象工廠模式 1.簡(jiǎn)單工廠模式 簡(jiǎn)單工廠模式:又稱為靜態(tài)工廠方法...
摘要:不過(guò)怎么來(lái)說(shuō)工廠方法模式是簡(jiǎn)單工廠模式的升級(jí)版。其次,工廠模式是一種典型的解耦模式,迪米特法則在工廠模式中表現(xiàn)的尤為明顯。 工廠模式想必大家在開(kāi)發(fā)過(guò)程中會(huì)經(jīng)常用到,顧名思義其就是作為一個(gè)工廠用來(lái)生產(chǎn)產(chǎn)品的,下面來(lái)簡(jiǎn)單介紹幾種常見(jiàn)的工廠模式。 0x01 簡(jiǎn)單工廠模式 1、類圖結(jié)構(gòu)showImg(/img/bVFf1t?w=531&h=278); 2、角色分類 工廠類:其內(nèi)部具有一點(diǎn)的判...
摘要:與以往的使用的方式不同,工廠模式使用工廠實(shí)例化對(duì)象。抽象工廠模式亮相抽象工廠模式抽象工廠模式提供一個(gè)接口,用于創(chuàng)建相關(guān)或依賴對(duì)象的家族,而不需要明確指定具體類。 寫在前面 這篇博文介紹設(shè)計(jì)模式的形式將與其他篇博文不太一樣,這里我們將從一個(gè)問(wèn)題入手,逐步了解到簡(jiǎn)單工廠、工廠方法與抽象工廠模式。 PS:這篇博文涉及的內(nèi)容較多,所以篇幅有點(diǎn)長(zhǎng),請(qǐng)耐心閱讀。 為什么要使用工廠模式? 在 OO ...
摘要:二簡(jiǎn)單工廠模式組成工廠類工廠模式的核心,通過(guò)調(diào)用它來(lái)實(shí)現(xiàn)其他類的功能。三工廠方法模式利用工廠方法模式可以有效解決簡(jiǎn)單工廠模式破壞開(kāi)閉原則的問(wèn)題。 一、概念 1、工廠模式分為三類:(1)簡(jiǎn)單工廠模式:一個(gè)工廠創(chuàng)建所有產(chǎn)品(2)工廠方法模式:一個(gè)工廠方法創(chuàng)建一個(gè)產(chǎn)品(3)抽象工廠模式:一個(gè)工廠方法創(chuàng)建一類產(chǎn)品 2、創(chuàng)建型模式這種模式是指將實(shí)例的創(chuàng)建和使用分離開(kāi)來(lái),隱藏類實(shí)例的創(chuàng)建細(xì)節(jié),外界...
摘要:反射提供給面向?qū)ο缶幊炭梢宰允〉哪芰?,即反射。在?jiǎn)單工廠模式中,根據(jù)傳遞的參數(shù)來(lái)返回不同的類的實(shí)例簡(jiǎn)單工廠模式又稱為靜態(tài)工廠方法模式。也就是簡(jiǎn)單工廠模式工廠工廠類。PHP高級(jí)特性-反射以及工廠設(shè)計(jì)模式的結(jié)合使用 [結(jié)合 Laravel-Admin 代碼實(shí)例講解]利用反射來(lái)實(shí)現(xiàn)工廠模式的生產(chǎn)而無(wú)需創(chuàng)建特定的工廠類本文地址http://janrs.com/?p=833轉(zhuǎn)載無(wú)需經(jīng)過(guò)作者本人授權(quán)轉(zhuǎn)載...
摘要:一簡(jiǎn)單工廠定義簡(jiǎn)單工廠其實(shí)并不屬于種設(shè)計(jì)模式之一,該模式是工廠方法模式的弱化或者說(shuō)是工廠方法模式的一種特例,因?yàn)楹?jiǎn)單,所以稱為簡(jiǎn)單工廠模式,也叫做靜態(tài)工廠模式。 一、簡(jiǎn)單工廠 定義 簡(jiǎn)單工廠其實(shí)并不屬于23種GOF設(shè)計(jì)模式之一,該模式是工廠方法模式的弱化(或者說(shuō)是工廠方法模式的一種特例),因?yàn)楹?jiǎn)單,所以稱為簡(jiǎn)單工廠模式(Simple Factory Pattern),也叫做靜態(tài)工廠模式...
閱讀 1005·2021-11-17 09:33
閱讀 473·2019-08-30 11:16
閱讀 2532·2019-08-29 16:05
閱讀 3410·2019-08-29 15:28
閱讀 1459·2019-08-29 11:29
閱讀 2007·2019-08-26 13:51
閱讀 3446·2019-08-26 11:55
閱讀 1273·2019-08-26 11:31