您好,欢迎访问三七文档
1第一次实验1:图形工厂使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、矩形(Rectangle)和三角形(Triangle)对象,每个几何图形均具有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,抛出一个UnsupportedShapeException异常,设计类图并编程实现。(1)类图(2)代码实现//代码颜色使用黑色,字体使用TimesNewRoman或Arial,字号为五号(1)抽象产品类:ShapepublicinterfaceShape{publicvoiddraw();publicvoiderase();}(2)具体产品类:CirclepublicclassCircleimplementsShape{publicvoiddraw(){System.out.println(drawCircle......);}publicvoiderase(){System.out.println(eraseCircle!);}}(3)具体产品类:Triangle2publicclassTriangleimplementsShape{publicvoiddraw(){System.out.println(drawTriangle......);}publicvoiderase(){System.out.println(eraseTriangle!);}}(4)具体产品类:RectanglepublicclassRectangleimplementsShape{publicvoiddraw(){System.out.println(drawRectangle......);}publicvoiderase(){System.out.println(eraseRectangle!);}}(5)工厂类:ShapeFactorypublicclassShapeFactory{publicstaticShapeproduceShape(Stringshape)throwsException{if(shape.equalsIgnoreCase(Circle)){System.out.println(生产一个Circle对象!);returnnewCircle();}elseif(shape.equalsIgnoreCase(Triangle)){System.out.println(生产一个Triangle对象!);returnnewTriangle();}elseif(shape.equalsIgnoreCase(Rectangle)){System.out.println(生产一个Rectangle对象!);returnnewRectangle();}else{thrownewException(UnsupportedShapeException!)}}}32:图片读取器某系统设计一个图片读取器(ImageReader),用来读取各种不同类型的图片格式,例如GIF图片读取器(GifReader)用于读取GIF格式的图片、JPG图片读取器(JpgReader)用于读取JPG格式的图片,现使用工厂方法模式设计该系统类图并编程实现。(1)类图(2)代码实现/***@authoraiyouwei_xa*ImageReaderFactory*/publicinterfaceImageReaderFactory{ImageReaderfactoryMethod();}/***@authoraiyouwei_xa*GifReaderFactory*/publicclassGifReaderFactoryimplementsImageReaderFactory{@OverridepublicImageReaderfactoryMethod(){System.out.println(制造一个GifReader。。。。。。);returnnewGifReader();4}}/***@authoraiyouwei_xa*JpgReaderFactory工厂*/publicclassJpgReaderFactoryimplementsImageReaderFactory{@OverridepublicImageReaderfactoryMethod(){System.out.println(制造一个JpgReader。。。。。。);returnnewJpgReader();}}/***@authoraiyouwei_xa*ImageReader接口*/publicinterfaceImageReader{voidreadImage();}/***@authoraiyouwei_xa*GifReader*/publicclassGifReaderimplementsImageReader{@OverridepublicvoidreadImage(){//TODOAuto-generatedmethodstubSystem.out.println(读取gif。。。。。。。);}}/***@authoraiyouwei_xa*JpgReader*/5publicclassJpgReaderimplementsImageReader{@OverridepublicvoidreadImage(){//TODOAuto-generatedmethodstubSystem.out.println(读取jpg。。。。。。。);}}importutil.XMLUtil;/***@authoraiyouwei_xa*Client*/publicclassClient{publicstaticvoidmain(String[]args){ImageReaderFactoryfactory;ImageReaderimageReader;factory=(ImageReaderFactory)XMLUtil.getBean();imageReader=factory.factoryMethod();imageReader.readImage();}}packageutil;importjava.io.File;importjava.io.IOException;importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.parsers.ParserConfigurationException;importorg.w3c.dom.Document;importorg.w3c.dom.Node;importorg.w3c.dom.NodeList;importorg.xml.sax.SAXException;publicclassXMLUtil{publicstaticObjectgetBean(){try{//创建DOM文档对象6DocumentBuilderFactorydocFactory=DocumentBuilderFactory.newInstance();DocumentBuilderdocBuilder=docFactory.newDocumentBuilder();Documentdocument=docBuilder.parse(newFile(config.xml));//获取包含类名的文本节点NodeListnl=document.getElementsByTagName(className);NodeclassNode=nl.item(0).getFirstChild();StringclassName=classNode.getNodeValue();//通过类名生成实例对象并将其返回@SuppressWarnings(rawtypes)Classclazz=Class.forName(className);Objectobj=clazz.newInstance();returnobj;}catch(ParserConfigurationExceptione){e.printStackTrace();}catch(SAXExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(InstantiationExceptione){e.printStackTrace();}catch(IllegalAccessExceptione){e.printStackTrace();}returnnull;}}?xmlversion=1.0encoding=UTF-8?xml-bodyclassNameGifReaderFactory/className/xml-body73:电器工厂一个电器工厂可以产生多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等,TCL工厂可以生产TCL电视机、TCL空调等,相同品牌的电器构成一个产品族,而相同类型的电器构成了一个产品等级结构,现使用抽象工厂模式模拟该场景,设计类图并编程实现(1)类图(2)代码实现publicinterfaceTV{publicvoidplay();}publicinterfaceAirConditioner{publicvoidchangeTemperature();}//具体产品类publicclassHaierTVimplementsTV{publicvoidplay(){System.out.println(海尔电视机播放中.);}}publicclassTCLTVimplementsTV{publicvoidplay(){System.out.println(TCL电视机播放中.);}}publicclassHaierAirConditionerimplementsAirConditioner{publicvoidchangeTemperature(){System.out.println(海尔空调控温中);}}publicclassHaierAirConditionerimplementsAirConditioner{publicvoidchangeTemperature(){System.out.println(TCL空调控温中);}}//抽象工厂类publicinterfaceFactory{publicTelevisionproduceTV();publicAirConditionerproduceAirConditioner();}//具体工厂类publicclassHaierFactoryimplementsFactory{publicTelevisionproduceTV(){returnnewHaierTV();}publicAirConditionerproduceAirConditioner{8returnnewHaierAirConditioner();}}publicclassTCLFactoryimplementsFactory{publicTelevisionproduceTV(){returnnewTCLTV();}publicAirConditionerproduceAirConditioner{returnnewTCLAirConditioner();}}//测试publicclassClient{publicstaticvoidmain(String[]args){TVtv;AirConditionerairConditioner;Factoryfactory=newHaierFactory();tv=f
本文标题:实验题
链接地址:https://www.777doc.com/doc-4051442 .html