1、创建图形接口
public interface Shape {
void draw();
}
2、实现接口
CircleImpl.java
public class CircleImpl implements Shape {
@Override
public void draw() {
System.out.println("this is circle method");
}
}
SquareImpl.java
public class SquareImpl implements Shape {
@Override
public void draw() {
System.out.println("this is square method");
}
}
RectangleImpl.java
public class RectangleImpl implements Shape {
@Override
public void draw() {
System.out.println("this is rectangle method");
}
}
3、创建图形工厂类
public class ShapeFactory {
public Shape getShape(String shape) {
if(shape == null) {
return null;
}
if(shape.equalsIgnoreCase("circle")) {
return new CircleImpl();
}
if(shape.equalsIgnoreCase("square")) {
return new SquareImpl();
}
if(shape.equalsIgnoreCase("rectangle")) {
return new RectangleImpl();
}
return null;
}
}
4、调用工厂类输出执行结果
public class FactoryPatternDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
ShapeFactory shapeFatory = new ShapeFactory();
Shape circle = shapeFatory.getShape("circle");
circle.draw();
Shape square = shapeFatory.getShape("square");
square.draw();
Shape rectangle = shapeFatory.getShape("rectangle");
rectangle.draw();
}
}
执行结果 :