设计模式之工厂模式(Factory)

简单工厂模式:

interface IShape {
    public void draw();
}

class Circular implements IShape {
    @Override
    public void draw() {
    System.out.println("圆形");
    }
}

class Rectangle implements IShape {
    @Override
    public void draw() {
    System.out.println("矩形");
    }
}
class ShapeFactory {
    public static IShape getInstance(String className) {
          if("Circular".equalsIgnoreCase(className)) {
                return new Circular();
          }else if("Rectangle".equalsIgnoreCase(className)) {
                return new Rectangle();
          }else {
                return null;
          }
    }
}
public class FactoryPatternDemo {

    public static void main(String[] args) {
        IShape shape = ShapeFactory.getInstance(args[0]);
        shape.draw();
    }

}
特点:通过使用一个共同的接口来指向实例化对象,工厂方法通常是静态,避免在获取对象时重复创建。

优点:可以根据参数的不同返回不同类的实例,相当于创建对象时的逻辑过程对客户端隐藏。

缺点:产品增加,需要添加相应的条件判断和产品类型,不利于后期维护。

posted @ 2020-09-07 14:41  颉颃  阅读(148)  评论(0编辑  收藏  举报