设计模式——工厂模式

102 阅读1分钟

定义:

又称多态性工厂模式,与简单工厂、抽象工厂模式同属于三大设计模式中的创建形模式。定义一个创建对象的接口,由子类决定要实例化的类是哪一个。

使用场景:

客户端不关心创建产品的细节,只关心产品品牌,比如我们只用知道某个手机是苹果的,不需要去关心它是哪个工厂代工的。
如果在编写代码过程中无法预知对象确切类别及其依赖关系时,可以使用工厂方法。

优点:

用户只需要关心产品对应的工厂,不需要关心创建细节;增加新产品的时候完全符合开闭原则,提高可扩展性。

缺点:

当产品种类多的时候,就会出现大量的工厂,工厂数量容易过多,增加了复杂度,增加了系统的抽象性和理解难度

代码实例:

举一个画图形的例子,有圆和矩形两种

public interface Shape {
    void draw();
}

public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("画一个圆");
    }
}

public class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("画一个矩形");
    }
}
public abstract class ShapeFactory {
    public abstract Shape getShape();
}

public class CircleFactory extends ShapeFactory {
    @Override
    public Shape getShape() {
        return new Circle();
    }
}

public class RectangleFactroy extends ShapeFactory {
    @Override
    public Shape getShape() {
        return new Rectangle();
    }
}