抽象工厂模式(Abstract Factory)

抽象工厂模式

  • 概念
    抽象工厂模式是工厂模式的升级,用来创建一组相关或相互依赖的对象。
  • 角色
    1.抽象工厂角色
    2.具体工厂角色
    3.产品接口或抽象产品角色
    4.具体产品角色
  • 角色对应关系
    1.多个具体工厂继承自抽象工厂;
    2.多个具体产品继承自抽象产品或实现产品接口;
    3.每个具体工厂可产生多个具体产品。
  • 实现过程

       产品接口

    public interface Product1 {
    }

    public interface Product2 {
    }    
    具体产品类

    public class ProductA1 implements Product1 {

        public ProductA1(){
            System.out.println("Product : " + this.getClass().getSimpleName());
        }
    
    }
    
    public class ProductA2 implements Product2 {

        public ProductA2(){
            System.out.println("Product : " + this.getClass().getSimpleName());
        }
    
    }
    定义抽象工厂

    public abstract class AbstractFactory {

        public abstract Product1 create1();
    
        public abstract Product2 create2();
    }

    产生产品的具体工厂

    public class FactoryA extends AbstractFactory{

        @Override
        public Product1 create1() {
            return new ProductA1();
        }
    
        @Override
        public Product2 create2() {
            return new ProductA2();
        }
    }
    调用方法

     public static void main(String[] args) {
        AbstractFactory abstractFactory = new FactoryA();
        abstractFactory.create1();
        abstractFactory.create2();

    }
    输出

    Product : ProductA1
    Product : ProductA2
  • 抽象工厂与工厂方法
    1.抽象工厂模式适用于改变产品系列,对产品系列的改变符合开闭原则;
    2.工厂方法模式适用于改变产品类别。

源码

https://github.com/Seasons20/DisignPattern.git

END

    原文作者:设计模式
    原文地址: https://segmentfault.com/a/1190000014746401
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞