酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

使用简单工厂模式设计一个可以创建不同几何形状( shape)的绘图工具类,例如圆形( circle) , 矩形( rectangle) 和三角形( triangle) 等。每个几何图形均具有绘制 draw()和擦出 erase()两个方法。要求在绘制不支持的几何图形时输出“图形不支持”。使用 java语言描述。

以下是使用 Java 实现的简单工厂模式来创建不同几何形状绘图工具类的代码: ```java interface Shape { // 绘制方法 void draw(); // 擦除方法 void erase(); } class Circle implements Shape { @Override public void draw() { System.out.println("绘制圆形"); } @Override public void erase() { System.out.println("擦除圆形"); } } class Rectangle implements Shape { @Override public void draw() { System.out.println("绘制矩形"); } @Override public void erase() { System.out.println("擦除矩形"); } } class Triangle implements Shape { @Override public void draw() { System.out.println("绘制三角形"); } @Override public void erase() { System.out.println("擦除三角形"); } } class ShapeFactory { // 根据传入的形状类型创建对应的形状对象 public Shape createShape(String shapeType) { if (shapeType.equalsIgnoreCase("circle")) { return new Circle(); } else if (shapeType.equalsIgnoreCase("rectangle")) { return new Rectangle(); } else if (shapeType.equalsIgnoreCase("triangle")) { return new Triangle(); } else { System.out.println("图形不支持"); return null; } } } public class Main { public static void main(String[] args) { ShapeFactory factory = new ShapeFactory(); // 创建圆形并操作 Shape circle = factory.createShape("circle"); if (circle!= null) { circle.draw(); circle.erase(); } // 创建矩形并操作 Shape rectangle = factory.createShape("rectangle"); if (rectangle!= null) { rectangle.draw(); rectangle.erase(); } // 创建三角形并操作 Shape triangle = factory.createShape("triangle"); if (triangle!= null) { triangle.draw(); triangle.erase(); } // 创建不支持的图形 Shape unknown = factory.createShape("square"); } } ``` 额外需要注意的逻辑点: 1. 对于输入的形状类型的校验要严谨,避免因输入格式错误导致创建错误。 2. 考虑对不同形状的属性进行设置和获取,以增加绘图的灵活性。 3. 处理可能出现的异常情况,比如创建形状对象时的内存不足等问题。 [2024-11-30 14:41:44 | AI写代码神器 | 584点数解答]

相关提问