文档详情

设计模式实验报告

z****2
实名认证
店铺
DOCX
112.95KB
约10页
文档ID:153920532
设计模式实验报告_第1页
1/10

实验一单例模式的应用1实验目的1)掌握单例模式〔SingletonJ的特点2)分析具体问题,使用单例模式进展设计2实验容和要求很多应用工程都有配置文件,这些配置文件里面定义一些应用需要的参数数据AppConfig-ParameterA:string+GetParameterA()+SetParameterA()通常客户端使用这个类是通过new—个AppConfig的实例来得到一个操作配置文件容的对象如果在系统运行中,有很多地方都需要使用配置文件的容,系统中会同时存在多份配置文件的容,这会严重浪费存资源事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了那么应该怎么实现呢?用C#控制台应用程序实现该单例模式绘制该模式的UML图3实验代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceAppConfig{publicclassSingleton{returninstanee;SingletonsingletonOne=SingletonGetlnstance();SingletonsingletonTwo=SingletonGetInstance();f(singletonOne.Equals(singletonTwo))ConsoleWriteLine('singletonOne和singletonTwo代表的是同一个实例")elseConsoleWriteLine('singletonOne和singletonTwo代表的是不同实例");SEC:\WIND□WS\ystem32\crnde>esingletonOnesingletonTwo司一个实例实验二工厂模式的应用1实验目的1) 掌握工厂模式〔Factory〕的特点2) 分析具体问题,使用工厂模式进展设计。

2实验容和要求有一个OEM制造商代理做HP笔记本电脑(Laptop),后来该制造商得到了更多的品牌笔记本电脑的订单Acer,Lenovo,Dell,该OEM商发现,如果一次同时做很多个牌子的本本,有些不利于管理利用工厂模式改善设计,用C#控制台应用程序实现该OEM制造商的工厂模式绘制该模式的UML图3实验代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespac&actory{class)uter{|publicvirtualvoidprint(){ConsoleWrite('我是puter'n");}}clasSHPputer:puter{publicoverridevoidprint(){ConsoleWrite('我是HPputer'n");}}clasQellputer:puterclassAcerputer:puter{publicoverridevoidprint(){ConsoleWrite("我是Acerputer'n");}}{publicoverridevoidprint(){|ConsoleWrite('我是Dellputer\n");}}interfaceIfactory{puterCreateputer();}classdPFactory:Ifactory{|publicputerCreateputer(){|returnnewHPputer()}|}|classAcerFactory:Ifactory{|publicputerCreateputer(){|returnnewAcerputer();}|}|clasQellFactory:Ifactory{staticvoidMain(string[]args){factoryfactory=newHPFactory()puterputer=factory.Createputer(puter.print();factory=newDellFactory();puter=factory.Createputer();puter.print();factory=newAcerFactory();puter=factory.Createputer();puter.print();}}4实验截图我是HPCcnrute工我是DellCoriputeT找是驶©tCoirrput青援任意键继续・・・实验三抽象工厂模式的应用1实验目的1)掌握抽象工厂模式〔AbstractFactory〕的特点2)分析具体问题,使用抽象工厂模式进展设计。

2实验容和要求麦当劳〔McDonalds〕和肯德基〔KFC丨快餐店都经营汉堡〔Hamburg〕和可乐〔Cola〕,用C#控制台应用程序实现这两个快餐店经营产品的抽象工厂模式绘制该模式的UML图3实验代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;-.jz*usingSystem.Text;usingSystem.Threading.Tasks;namespaceAbstractFactory{{publicvirtualvoidprint(){ConsoleWrite('iamcola\n");}}{publicvirtualvoidprint()clasKFCCola:Colapublicoverridevoidprint(){ConsoleWrite('iamKFCcola'n");}}clasMDCola:Cola{publicoverridevoidprint(){|ConsoleWrite('iamMDcola\n");}}clasKFChum:Hum{publicoverridevoidprint(){|ConsoleWrite("iamKFChamburger'n");}clasMDhum:Humpublicoverridevoidprint(){ConsoleWrite('iamMDhamburger'n");}abstractclasfectory{publicabstracHumcreateHum();publicabstracColacreateCola();}clasKFCFectory:factory{publicoverrideHumcreateHum(){returnnewKFChum();}publicoverrideColacreateCola(){IreturnnewKFCCola();}}clasMDFectory:factory{publicoverrideHumcreateHum(){returnnewMDhum()}publicoverrideColacreateCola(){|returnnewMDCola();}clasProgram{c.print();staticvoidMain(string[]args){factoryf=newKFCFectory();Humh=f.createHum()Colac=f.createCola();h.print();f=newMDFectory()h=f.createHum();c=f.createCola();h.print();c.print();}}}4实验结果iamKKChamburgeriamKFCcolaiamMDhaoburgeriamMDccla『青按任意键继绫•+实验四建造者模式的应用1实验目的1) 掌握建造者模式〔Builder〕的特点2) 分析具体问题,使用建造者模式进展设计。

2实验容和要求建造者模式是一种创立型模式,它主要是应对工程中一些复杂对象的创立工作所谓“复杂对象〃,是指此对象中还含有其它的子对象我们现在定义一个场景:汽车生产必须包含车轮(Wheel)油箱(OilBox)和车身(Body),应用建造者模式,用C#控制台应用程序实现该设计,构建BMW品牌和BenZ品牌汽车生产绘制该模式的UML图3实验代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespacQuilder{clasQar{privateStringwheelprivateStringoilBox;privateStringbody;publicvoidsetWheelStringwheel)publicvoidsetOilBox(StringoilBox){this.oilBox=oilBox;}publicvoidsetBodyStringbody){this.body=body;}publicvoidintrouduce(){ConsoleWriteLine(wheel);ConsoleWriteLine(oilBox);ConsoleWriteLine(body);}}abstractclasCarBuilder{protectedCarcar=newCar();publicabstractvoidbuildWheel();publicabstractvoidbuildOilBox();publicabstractvoidbuildBody();publicCargetCar()returncar;clasSJMWBuilder:CarBuilderpublicoverridevoidbuildBody()clasSJenZBuilder:CarBuilder{publicoverridevoidbuildBody()clasQirector{privateCarBuildercarBuilder;publicDirector(CarBuildercarBuilder){this.carBuilder=carBuilder;}publicvoidsetCarBuildeiCarBuildercarBuilder){this.carBuilder=carBuilder;}publicvoidconstruct(){carBuilder.buildWheel();carBuilder.buildBody();carBuilder.buildOilBox();}}clasProgram{staticvoidMain(string[]args){Carcar;CarBuildercarbuilder=newBMWBuilder()Directordirector=newDirector(carbuilder);director.construct();car=carbuilder.getCar();car.introuduce();carbuilder=newBenZBuilder();director.setCarBuilder(carbuilder);director.construct();car=carbuilder.getCar();car.introuduce();ConsoleReadKey();}|}4实验结果wheelina.deinBMFpilBcixmadeinBWbodymadeinEltfwheelmadeinBenspil&OKmadein:>odymadeinBenz。

下载提示
相关文档
正为您匹配相似的精品文档