首頁 > Java > java教程 > 工廠模式

工廠模式

Linda Hamilton
發布: 2024-11-20 01:01:03
原創
641 人瀏覽過

什麼是工廠模式?

工廠模式是一種創建模式,它定義了用於創建物件的接口,但讓子類別決定要實例化哪個類別。工廠模式讓類別將實例化延後到子類別。

什麼時候使用它?

當您具有「產品」繼承層次結構並可能向其中添加其他產品時,請使用工廠模式。 (Product指的是Factory方法回傳的物件)

問題

如果你不了解 Simple Factory,我建議你先學習一下。資源很多,但我的部落格在這裡。

Factory Pattern

之前,我們引入了簡單工廠,我們可以生產各種漢堡,同時將物件創建與客戶端程式碼解耦。我們的漢堡店已經成功獲利,現在我們想在不同的地區開設其他漢堡店。

orderBurger 方法定義了向客戶銷售漢堡的流程。

這完全沒問題,但是如果我們開其他漢堡店怎麼辦?假設我們啟動“SeaSideBurgerShop”,我們將建立 SeaSideBurgerShop 類別並定義它自己的 orderBurger()。問題是,他們可能會忘記添加配料或以錯誤的順序進行操作。

有問題的海邊漢堡店:

為了防止這種情況發生,我們的漢堡店需要一個框架,定義他們執行流程的順序以及要做什麼,但仍然允許事情保持靈活性。

解決方案

Factory Pattern

  1. 漢堡店
    這個抽象類別有兩個方法:orderBurger() 和 createBurger()。 orderBurger() 定義要做什麼以及流程應按什麼順序完成。這可以防止漢堡店忘記某些流程或弄亂流程順序。 creatBurger() 是抽象方法,讓子類別決定要製作哪種漢堡。

  2. BurgerShop 子類別
    這些特定的漢堡店負責製作特定的漢堡。每個擴充 BurgerShop 的子類別都定義了自己的 createBurger() 實作。

  3. 漢堡
    這個抽象類別提供所有漢堡之間的通用介面並定義預設行為。

  4. 漢堡子類
    這是我們的具體產品。只要擴展 Burger 類,他們就可以透過重寫方法來實現特定行為。

結構

Factory Pattern

Java 中的實作

輸出:

陷阱

  • 實作起來很複雜,因為我們需要建立大量的類別來擴展抽象創建者或抽象產品。

與簡單工廠的比較

  • 簡單工廠中,通常有一個工廠類別來決定創建哪種類型的產品,而工廠模式可能會引入多個工廠。
  • 簡單工廠經常使用靜態方法創建對象,呼叫容易但擴展困難。另一方面,工廠方法在超類別中使用抽象方法,它充當所有工廠和子類別的接口,將為物件實例化提供具體的實現。

您可以在這裡查看所有設計模式的實作。
GitHub 儲存庫


附註
我是剛開始寫科技博客,如果您對我的寫作有什麼建議,或者有任何困惑的地方,請留言!
感謝您的閱讀:)

以上是工廠模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板