简单工厂模式、工厂方法模式实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 使用简单工厂模式设计一个可以创建不同几何形状(Shape),如圆形(Circle)、矩形(Rectangle)的绘图工具工厂类,每个几何图形均有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,抛出一个UnSupportedShapeException。绘制类图并编程模拟实现。

代码实现

Shape.java

Circle.java

Rectangle.java

ShapeFactory.java

UnSupportedShapeException.java

Test.java

如果向工厂类传入参数“circle”,则返回一个Circle对象,如果传入参数“rectangle”,则返回一个Rectangle对象。现需要增加一个新的三角形Triangle类,如果传入参数“triangle”,则返回一个Triangle对象,对代码进行修改并注意工厂类的变化。

添加一个Triangle类

Triangle.java

ShapeFactory类的代码,违背了开闭原则。

ShapeFactory.java

Assert.java

2. 现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF图片读取器(GifReader)用于读取GIF格式的图片、JPG 图片读取器(JpgReader)用于读取JPG格式的图片,所有的图片读取器都有读取图片的方法readImage()。图片读取器对象通过图片读取器工厂ImageReaderFactory来创建,ImageReaderFactory是一个抽象工厂接口,定义了创建图片读取器的工厂方法createImageReader(),其实现类GifReaderFactory用于创建GIF图片读取器(GifReader)对象,

JpgReaderFactory类用于创建JPG图片读取器(JpgReader)对象。使用工厂方法模式完成该程序的设计,绘制类图并编程模拟实现。

代码实现:

ImageReader.java

package org.han.demo5;

public interface ImageReader {

void readImage();

}

GifReader.java

package org.han.demo5;

public class GifReader implements ImageReader{

@Override

public void readImage() {

System.out.println("读取GIF...");

}

}

JpgReader.java

package org.han.demo5;

public class JpgReader implements ImageReader {

public void readImage() {

System.out.println("读取JPG...");

}

}

ImageReaderFactory.java

GifReaderFactory.java

JpgReaderFactory.java

Client.java

XMLUtil.java

config.xml

相关文档
最新文档