设计模式抽象工厂

抽象工厂模式



设计原则:遵循单一职责、依赖倒置、开闭原则
常用场景:需要一个接口可以提供一个产品族,且不必知道产品的具体种类
使用概率:30%
复杂度:中
变化点:工厂与产品的种类
选择关键点:产品族是否需要一起提供,且是否有一致的接口
逆鳞:无
相关设计模式
建造者模式:两者都是建造一批对象或者说产品,不同的是两者的目的和实现手段,
在建造者模式中,是为了复用对象的构建过程而定义了一个指挥者,而在抽象工厂模式中,是为了提供一个这批对象的创建接口而定义了抽象工厂接口。



主要思想:
实际是把多工厂模式中分别提供不同类实例化的方法进行拆分,不放在一个工厂类中,而是拆分为多个工厂类,即把工厂类进一步抽象
一个工厂类提供一个单独类实例化方法,
同时工厂类和实例类分别实现接口
增加了工厂方法的扩展性


public interface DoInterface {
    public void dosomething();
}
public interface FactoryInterface {
    public DoInterface produce();
}
public class DoInterfaceImplementsA implements DoInterface {
    @Override
    public void dosomething() {
        System.out.println("A");
    }
}
public class DoInterfaceImplementsB implements DoInterface {
    @Override
    public void dosomething() {
        System.out.println("B");
    }
}
public class FactoryA implements FactoryInterface {
    @Override
    public DoInterface produce() {
        return new DoInterfaceImplementsA();
    }
}
public class FactoryB implements FactoryInterface {
    @Override
    public DoInterface produce() {
        return new DoInterfaceImplementsB();
    }
}


原文地址:https://www.cnblogs.com/zhaojj/p/7766724.html