西南科技大学计算机学院 《面向对象系统分析和设计》实验报告 绘制类图并编程模拟实现。
1) 类图
2) 实现代码:
public interface Shape { public void draw(); public void erase(); }
public class Circle implements Shape { public void draw(){
System.out.println(\); }
public void erase(){
System.out.println(\); }
}
public class Rectangle implements Shape { public void draw(){
System.out.println(\); }
public void erase(){
System.out.println(\); }
}
public class Triangle implements Shape {
5
西南科技大学计算机学院 《面向对象系统分析和设计》实验报告 public void draw(){
System.out.println(\); }
public void erase(){
System.out.println(\); }
}
public class ShapeFactory {
public static Shape produceShape(String shape) throws UnsupportedShapeException {
if (shape.equals(\)) { System.out.println(\); return new Circle(); }
else if (shape.equals(\)) { System.out.println(\); return new Triangle(); }
else if (shape.equals(\)) { System.out.println(\); return new Rectangle(); }
else {
throw new UnsupportedShapeException(); } }
}
public class UnsupportedShapeException extends Exception{ public UnsupportedShapeException () {
System.out.println(\绘制图形异常,请确认输入图形。\); }
}
public class Client {
public static void main(String[] args) {
ShapeFactory shapeFactory=new ShapeFactory(); try {
shapeFactory.produceShape(\).draw(); shapeFactory.produceShape(\).erase(); } catch (UnsupportedShapeException e) { e.printStackTrace(); } }
}
6
西南科技大学计算机学院 《面向对象系统分析和设计》实验报告
3) 实现结果:
4. 现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF图片读取器(GifReader)用于读取GIF格式的图片、JPG图片读取器(JpgReader)用于读取JPG格式的图片。图片读取器对象通过图片读取器工厂ImageReaderFactory来创建,ImageReaderFactory是一个抽象类,用于定义创建图片读取器的工厂方法,其子类GifReaderFactory和JpgReaderFactory用于创建具体的图片读取器对象。试使用工厂方法模式设计该程序,绘制类图并编程模拟实现。需充分考虑系统的灵活性和可扩展性。
1) 类图
2) 实现代码:
public class Client {
public static void main(String[] args) {
JpgReaderFactory jFactory = new JpgReaderFactory(); jFactory.produceImageReader().readimage();
GifReaderFactory gFactory = new GifReaderFactory(); gFactory.produceImageReader().readimage(); }
}
public interface ImageReader {
7
西南科技大学计算机学院 《面向对象系统分析和设计》实验报告 public void readimage();
}
public class GifReader implements ImageReader { public void readimage(){
System.out.println(\); }
}
public class JpgReader implements ImageReader { public void readimage(){
System.out.println(\);
System.out.println(\); }
}
public abstract class ImageReaderFactory {
public abstract ImageReader produceImageReader(); }
public class GifReaderFactory extends ImageReaderFactory { public ImageReader produceImageReader(){ System.out.println(\); return new GifReader(); }
}
public class JpgReaderFactory extends ImageReaderFactory { public ImageReader produceImageReader(){ return new JpgReader(); }
}
3) 实现结果:
5. 有一个OEM制造商代理做HP笔记本电脑(Laptop),后来该制造商得到了更多的品牌笔记本电脑的订单Acer,Lenovo,Dell,该OEM商发现,如果一次同时做很多个牌子的本本,有些不利于管理。利用工厂模式改善设计,绘制类图并编程模拟实现。
1) 类图
8
相关推荐: