题目:现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器
(ImageReader),如GIF图片读取器(GifReader)用于读取GIF格式的图片,JPEG图片读取器(JpgReader)用于读取JPEG格式的图片。图片读取器对象通过图片读取器工厂ImageReaderFactory来创建,ImageReaderFactory是一个抽象类,用于定义创建图片读取器的工厂方法,其子类GifReaderFactory和JpgReaderFactory用于创建具体的图片读取器对象。
类图:
代码:
ImgReader接口:
public interface ImgReader {
public void read();
}
GifReader类
public class GifReader implements ImgReader{
@Override
public void read() {
System.out.println("读取gif格式的图片");
}
}
JPGReader类
public class JPGReader implements ImgReader{
@Override
public void read() {
System.out.println("读取JPG格式的图片");
}
}
ImgReaderFactory类
public interface ImgReaderFactory {
public ImgReader getImgReader();
}
GifReaderFactory类
public class GifReaderFactory implements ImgReaderFactory{
@Override
public ImgReader getImgReader() {
ImgReader imgReader = new GifReader();
return imgReader;
}
}
JPGReaderFactory类:
public class JPGReaderFactory implements ImgReaderFactory{
@Override
public ImgReader getImgReader() {
ImgReader imgReader = new JPGReader();
return imgReader;
}
}
测试类:
public class Test {
public static void main(String[] args) {
ImgReaderFactory imgReaderFactory = new GifReaderFactory();
imgReaderFactory.getImgReader().read();
}
}