![]() 系统的源代码如下 |
| package com.javapatterns.simplefactory.exercise; public class ArtTracer { public Shape factory(String which) throws BadShapeException { if (which.equalsIgnoreCase("circle")) { return new Circle(); } else if (which.equalsIgnoreCase("square")) { return new Square(); } else if (which.equalsIgnoreCase("triangle")) { return new Triangle(); } else { throw new BadShapeException(which); } } } |
| package com.javapatterns.simplefactory.exercise; public interface Shape { void draw(); void erase(); } |
| package com.javapatterns.simplefactory.exercise; public class Square implements Shape { public void draw() { System.out.println("Square.draw()"); } public void erase() { System.out.println("Square.erase()"); } } |
| package com.javapatterns.simplefactory.exercise; public class Circle implements Shape { public void draw() { System.out.println("Circle.draw()"); } public void erase() { System.out.println("Circle.erase()"); } } |
| package com.javapatterns.simplefactory.exercise; public class Triangle implements Shape { public void draw() { System.out.println("Triangle.draw()"); } public void erase() { System.out.println("Triangle.erase()"); } } |
| package com.javapatterns.simplefactory.exercise; public class BadShapeException extends Exception { public BadShapeException(String msg) { super(msg); } } |
| try { ArtTracer art = new ArtTracer(); art.factory("circle"); art.factory("square"); art.factory("triangle"); art.factory("diamond"); } catch(BadShapeException e) { ... } |