抽象工廠模式(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

相關文章
相關標籤/搜索