java设计模式之抽象工厂模式

    xiaoxiao2021-03-26  21

    抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

    抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不需要知道实际产出的具体产品是什么。

    烤鱼之抽象工厂模式类图: 类A,B实现了接口TiaoLiao,分别是调料A,调料B。FactoryA,FactoryB是AbstractFactory的子类,通过create方法来实例化TiaoLiao。

    TiaoLiao接口代码实现:

    public interface TiaoLiao { }

    A类代码实现:

    public class A implements TiaoLiao{ public A(){ System.out.println("调料A"); } }

    B类代码实现:

    public class B implements TiaoLiao{ public B(){ System.out.println("调料B"); } }

    AbstractFactory类代码实现:

    public abstract class AbstractFactory { public abstract TiaoLiao create(); }

    FactoryA类代码实现:

    public class FactoryA extends AbstractFactory{ @Override public TiaoLiao create() { // TODO Auto-generated method stub return new A(); } }

    FactoryB类代码实现:

    public class FactoryB extends AbstractFactory{ @Override public TiaoLiao create() { // TODO Auto-generated method stub return new B(); } }

    KaoYu类代码实现:

    public class KaoYu { AbstractFactory abstractFactory; public KaoYu(AbstractFactory abstractFactory){ this.abstractFactory = abstractFactory; } public TiaoLiao orderFish(){ return abstractFactory.create(); } }

    测试类AbstractFactoryTest代码实现:

    public class AbstractFactoryTest { public static void main(String[] args){ AbstractFactory abstractFactory = new FactoryA(); KaoYu kaoYu = new KaoYu(abstractFactory); kaoYu.orderFish(); AbstractFactory abstractFactory2 = new FactoryB(); KaoYu kaoYu2 = new KaoYu(abstractFactory2); kaoYu2.orderFish(); } }

    运行结果:

    调料A 调料B
    转载请注明原文地址: https://ju.6miu.com/read-658891.html

    最新回复(0)