抽象工厂模式(Abstract Factory)

抽象工厂模式git

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

    产品接口
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.工厂方法模式适用于改变产品类别。

源码ide

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

ENDthis

相关文章
相关标签/搜索