工廠模式是一種創建模式,它定義了用於創建物件的接口,但讓子類別決定要實例化哪個類別。工廠模式讓類別將實例化延後到子類別。
當您具有「產品」繼承層次結構並可能向其中添加其他產品時,請使用工廠模式。 (Product指的是Factory方法回傳的物件)
如果你不了解 Simple Factory,我建議你先學習一下。資源很多,但我的部落格在這裡。
之前,我們引入了簡單工廠,我們可以生產各種漢堡,同時將物件創建與客戶端程式碼解耦。我們的漢堡店已經成功獲利,現在我們想在不同的地區開設其他漢堡店。
orderBurger 方法定義了向客戶銷售漢堡的流程。
這完全沒問題,但是如果我們開其他漢堡店怎麼辦?假設我們啟動“SeaSideBurgerShop”,我們將建立 SeaSideBurgerShop 類別並定義它自己的 orderBurger()。問題是,他們可能會忘記添加配料或以錯誤的順序進行操作。
有問題的海邊漢堡店:
為了防止這種情況發生,我們的漢堡店需要一個框架,定義他們執行流程的順序以及要做什麼,但仍然允許事情保持靈活性。
漢堡店
這個抽象類別有兩個方法:orderBurger() 和 createBurger()。 orderBurger() 定義要做什麼以及流程應按什麼順序完成。這可以防止漢堡店忘記某些流程或弄亂流程順序。 creatBurger() 是抽象方法,讓子類別決定要製作哪種漢堡。
BurgerShop 子類別
這些特定的漢堡店負責製作特定的漢堡。每個擴充 BurgerShop 的子類別都定義了自己的 createBurger() 實作。
漢堡
這個抽象類別提供所有漢堡之間的通用介面並定義預設行為。
漢堡子類
這是我們的具體產品。只要擴展 Burger 類,他們就可以透過重寫方法來實現特定行為。
輸出:
您可以在這裡查看所有設計模式的實作。
GitHub 儲存庫
附註
我是剛開始寫科技博客,如果您對我的寫作有什麼建議,或者有任何困惑的地方,請留言!
感謝您的閱讀:)
以上是工廠模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!