1. 程式人生 > 實用技巧 >工廠設計模式

工廠設計模式

1.工廠方法模式的主要優點有:

  • 使用者只需要知道具體工廠的名稱就可得到所要的產品,無須知道產品的具體建立過程;
  • 在系統增加新的產品時只需要新增具體產品類和對應的具體工廠類,無須對原工廠進行任何修改,滿足開閉原則;


2.其缺點是

  每增加一個產品就要增加一個具體產品類和一個對應的具體工廠類,這增加了系統的複雜度。

3.模式的結構與實現

  工廠方法模式由抽象工廠、具體工廠、抽象產品和具體產品等4個要素構成。本節來分析其基本結構和實現方法。

  1. 模式的結構

  工廠方法模式的主要角色如下。

  1. 抽象工廠(Abstract Factory):提供了建立產品的介面,呼叫者通過它訪問具體工廠的工廠方法 newProduct() 來建立產品。
  2. 具體工廠(ConcreteFactory):主要是實現抽象工廠中的抽象方法,完成具體產品的建立。
  3. 抽象產品(Product):定義了產品的規範,描述了產品的主要特性和功能。
  4. 具體產品(ConcreteProduct):實現了抽象產品角色所定義的介面,由具體工廠來建立,它同具體工廠之間一一對應。

4.圖形

  

5.程式

package com.jun.design.create;

/**
 * 工廠
 */
public class FactoryMethod {
    public static void main(String[] args) {
        Car a;
        AbstractFactory af = new carFactory();
        a=af.newProduct();
        a.build();
    }
}

// 抽象工廠
interface AbstractFactory {
    public Car newProduct();
}

class carFactory implements AbstractFactory {
    @Override
    public Car newProduct()
    {
        System.out.println("具體工廠1生成-->具體產品1...");
        return new bmwCar();
    }
}


// 具體實現
interface Car {
    public void build();
}

class bmwCar implements Car{
    @Override
    public void build() {
        System.out.println("寶馬...");
    }
}

  

6.簡單工廠