java 设计模式 ---- 工场模式

时间:2023-03-08 19:40:27

官方描述: 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类

土话描述: 先把所有的情况设先计出来, 后面根据条件实现哪种情况

  比如我想找女朋友, 喜欢的类型可能是: 屁股大的, 胸挺的, 脸蛋园的, 同事里面这几种类型都有, 后面我妈说找个屁股大的, 那我就选了小方.....

创建一个接口

public interface Shape {
void draw();
}

实例类: 圆

public class Circle implements Shape {

   @Override
public void draw() {
System.out.println("Inside Circle::draw() method.");
}
}

实例类: 矩形

public class Rectangle implements Shape {

   @Override
public void draw() {
System.out.println("Inside Rectangle::draw() method.");
}
}

创建工场

  由工场来创建具体的图形

public class ShapeFactory {

   //使用 createShape 方法获取形状类型的对象
public Shape createShape(String shapeType){
if(shapeType == null){
return null;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
return new Circle();
}
    if(shapeType.equalsIgnoreCase("RECTANGLE")){
return new Rectangle();
} return null;
}
}

使用工场

public class FactoryPatternDemo {

   public static void main(String[] args) {
ShapeFactory shapeFactory = new ShapeFactory(); //获取 Circle 的对象,并调用它的 draw 方法
Shape shape1 = shapeFactory.getShape("CIRCLE"); //调用 Circle 的 draw 方法
shape1.draw(); }
}