資源描述:
《T4_設(shè)計(jì)模式_抽象工廠模式.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、第四章抽象工廠模式工廠方法模式的原理工廠方法模式,有什么優(yōu)缺點(diǎn)?回顧創(chuàng)建模式工廠模式(Factory)簡(jiǎn)單工廠模式(SimpleFactory)工廠方法模式(FactoryMethod)抽象工廠模式(AbstractFactory)建造者模式(Builder)原型模式(Prototype)單例模式(Singleton)本章任務(wù)抽象工廠模式——引子X(jué)X同學(xué)在買車的過(guò)程中,突然改變主意,想多了解點(diǎn)其他品牌的車子?請(qǐng)各位同學(xué)給這位同學(xué)出出主意,如何方便的讓這位同學(xué)買到心儀的車呢?用程序來(lái)演示整個(gè)買車過(guò)程。抽象工廠模式——定義定義提供一
2、個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無(wú)需指定它們具體的類別名Kit模式抽象工廠模式——結(jié)構(gòu)圖抽象工廠模式——原理抽象工廠實(shí)體工廠2實(shí)體工廠1抽象產(chǎn)品A抽象產(chǎn)品B實(shí)體產(chǎn)品B1實(shí)體產(chǎn)品B2實(shí)體產(chǎn)品A1實(shí)體產(chǎn)品A2客戶抽象工廠模式——參與者參與者抽象工廠(AbstractFactory)聲明生成抽象產(chǎn)品的方法。具體工廠(ConcreteFactory)執(zhí)行生成抽象產(chǎn)品的方法,生成一個(gè)具體的產(chǎn)品。抽象產(chǎn)品(AbstractProduct)為一種產(chǎn)品聲明接口。具體產(chǎn)品(Product)定義具體工廠生成的具體產(chǎn)品的對(duì)象,實(shí)現(xiàn)產(chǎn)品接口???/p>
3、戶(Client)我們的應(yīng)用程序,使用抽象產(chǎn)品和抽象工廠生成對(duì)象抽象工廠模式——應(yīng)用abstractclassAbstractFactory{publicstaticAbstractFactoryCreateFactory(stringtype){AbstractFactoryfactory=null;switch(type){case"Bmw":factory=newBmwFactory();break;case"Audi":factory=newAudiFactory();break;}returnfactory;}publ
4、icabstractAbstractSportsCarCreateSportsCar();publicabstractAbstractBussinessCarCreateBussinessCar();}抽象工廠簡(jiǎn)單工廠模式抽象工廠模式——應(yīng)用classBmwFactory:AbstractFactory{publicoverrideAbstractSportsCarCreateSportsCar(){returnnewBmw.BmwSportsCar();}publicoverrideAbstractBussinessCarCr
5、eateBussinessCar(){returnnewBmw.BmwBussinessCar();}}具體工廠抽象工廠模式——應(yīng)用abstractclassAbstractSportsCar{}抽象產(chǎn)品classBmwSportsCar:AbstractSportsCar{publicBmwSportsCar(){Console.WriteLine("寶馬中的跑車");}}具體產(chǎn)品抽象工廠模式——應(yīng)用classClient{publicvoidBuy(){AbstractFactoryfactory=AbstractFacto
6、ry.CreateFactory("Bmw");factory.CreateSportsCar();}}客戶客戶請(qǐng)求抽象工廠抽象產(chǎn)品抽象工廠模式與反射usingSystem.Reflection;Assembly.Load(“程序集名”).CreateInstance(“命名空間.類名稱");抽象工廠模式——優(yōu)缺點(diǎn)優(yōu)缺點(diǎn)優(yōu)點(diǎn)隔離了具體類的生成,使得客戶不需要知道什么被創(chuàng)建了。當(dāng)一個(gè)產(chǎn)品族中的多個(gè)對(duì)象被設(shè)計(jì)成一起工作時(shí),它能夠保證客戶端始終只使用同一個(gè)產(chǎn)品族中的對(duì)象。缺點(diǎn)添加新的產(chǎn)品對(duì)象時(shí),難以擴(kuò)展抽象工廠以便生產(chǎn)新種類的產(chǎn)品。抽
7、象工廠模式——適用性適用性系統(tǒng)需要屏蔽有關(guān)對(duì)象如何創(chuàng)建,如何組織和如何表示系統(tǒng)需要由關(guān)聯(lián)的對(duì)象來(lái)構(gòu)成有關(guān)聯(lián)的多個(gè)對(duì)象需要一起應(yīng)用并且它們的約束是強(qiáng)迫的(不可分離)你想提供一組對(duì)象而不顯示它們的實(shí)現(xiàn)過(guò)程,只顯示它們的接口總結(jié)簡(jiǎn)單描述下,什么是抽象工廠模式?抽象工廠模式,有什么優(yōu)缺點(diǎn)?謝謝!