1、Shape.java
package com.ssm.cts.pattern.factory; public interface Shape { void draw(); }
2、Circle.java
package com.ssm.cts.pattern.factory; public class Circle implements Shape { @Override public void draw() { System.out.println("圆形"); } }
3、Square.java
package com.ssm.cts.pattern.factory; public class Square implements Shape { @Override public void draw() { System.out.println("方形"); } }
4、ShapeFactory.java
package com.ssm.cts.pattern.factory; public class ShapeFactory { // 使用 getShape 方法获取形状类型的对象 public Shape getShape(String shapeType) { if (shapeType == null) { return null; } if (shapeType.equalsIgnoreCase("CIRCLE")) { return new Circle(); } else if (shapeType.equalsIgnoreCase("SQUARE")) { return new Square(); } return null; } }
5、Demo.java
package com.ssm.cts.pattern.factory; public class Demo { // 测试 public static void main(String[] args) { ShapeFactory shapeFactory = new ShapeFactory(); // 获取 Circle 的对象,并调用它的 draw 方法 Shape shape1 = shapeFactory.getShape("CIRCLE"); // 调用 Circle 的 draw 方法 shape1.draw(); // 获取 Square 的对象,并调用它的 draw 方法 Shape shape2 = shapeFactory.getShape("SQUARE"); // 调用 Square 的 draw 方法 shape2.draw(); } }