工廠方法設計模式

簡介

工廠方法模式(Factory method pattern),工廠方法模式是簡單工廠模式的進化版。在簡單工廠設計模式中,我們如果要添加新的功能,那麼是避免不了要修改源代碼的,而工廠方法設計模式,則可以很好的避免這個問題。

代碼實現

下面內容與我上一篇所說的簡單工廠設計模式一樣

1 首先創建一個接口 (car) 有一個 跑的功能

package com.guxiang.factory.simplefactory;

public interface Car {
    void run();
}

2 寶馬和奔馳兩輛豪車分別實現了這個car接口

public class BWM implements Car{

    public void run() {
        System.out.println("寶馬在路上飛奔");
    }

}
public class Benz implements Car {

    public void run() {
        System.out.println("奔馳在路上飛奔");
    }

}

以上,是上一篇的


我們開始創建我們的工廠方法


1 首先我們可以創建一個工廠接口

public class BenzFactory implements CarFactory{

    public Car createCar() {
        return new Benz();
    }
}

2 我們創建 寶馬 和 奔馳的 兩個工廠

public class BenzFactory implements CarFactory{

    public Car createCar() {
        return new Benz();
    }

}
public class BWMFactory implements CarFactory{

    public Car createCar() {
        return new BWM();
    }

}

3 我們看客戶類,客戶類使用工廠使用產品

public class Client {
    public static void main(String[] args) {
        Car car1 = new BWMFactory().createCar();
        Car car2 = new BenzFactory().createCar();

        car1.run();
        car2.run();
    }
}   

我們再來看它的UML圖
這是工廠方法設計模式的uml圖

我們可以很明顯的發現,這個比前面的簡單工廠設計模式,複雜了不少,但是它在面向對象上,實現了開閉原則。

對比簡單工廠設計模式

  • 在結構複雜度上,簡單工廠夠簡單
  • 在代碼的複雜度上,簡單工廠,還是比工廠方法模式簡單
  • 在管理的難度上,簡單工廠只需要對外有兩個路徑 , 而工廠設計模式上明顯多
  • 簡單工廠沒有實現開閉原則,而工廠方法模式 實現了

綜上所述,實際開發中,簡單工廠用的更多。

發佈了43 篇原創文章 · 獲贊 91 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章