設計模式入門:簡單工廠模式 Simple Factory Pattern

設計模式入門:簡單工廠模式 Simple Factory Pattern

更新於 發佈於 閱讀時間約 3 分鐘

當你在開發應用程式時,可能會面臨要建立不同物件的需求。這時候簡單工廠模式(Simple Factory Pattern)是一個很實用的解決方案。今天我們就來用特斯拉汽車工廠的例子來解釋這個概念。 什麼是簡單工廠模式? 簡單工廠模式的核心思想是:將物件的建立過程封裝起來,客戶端(也就是使用者)只需要知道自己想要什麼產品,至於產品的具體建立過程,則交由工廠來處理。這樣做的好處是當你需要不同的物件時,不用每次都自己動手,只要告訴工廠就好了。 想像一下特斯拉的工廠,這個工廠能夠根據不同的需求,生產出不同車型的汽車,如 Model 3、Model S、Model X 和 Model Y。每當你需要某款車型時,只需要告訴工廠你的需求,工廠會自動生產並交付。這樣的方式不僅讓流程變得簡單,還避免了重複的手動操作。 簡單工廠模式在特斯拉汽車工廠的應用 在沒有工廠模式的情況下,每次你想要建立不同的車型,就得手動寫一大堆程式碼。假如在開發一個應用程式,每次需要新增一款新車型時,你都必須修改多處程式碼,這樣不僅容易出錯,還非常浪費時間。 然而透過簡單工廠模式,你只需要告訴工廠:「我需要 Model 3」,工廠就會自動生成 Model 3 的物件。如果哪天特斯拉推出了新的車型,比如 Model Z,你只需要在工廠裡新增對 Model Z 的支援即可,整個流程變得輕鬆且高效。 簡單工廠模式的優缺點 簡單工廠模式的優點是簡單易用,只要告訴工廠你需要什麼,工廠就能幫你生產。程式碼集中處理,簡化了邏輯也讓未來的擴展變得簡單。未來如果新增產品,只需要修改工廠內部邏輯,使用者端的程式碼不受影響。 簡單工廠模式缺點是複雜度隨產品數量增加,如果工廠需要處理的產品越來越多,工廠類別的邏輯也會變得越來越複雜,違背了「單一職責原則」。這會讓維護變得困難。 總結一下,簡單工廠模式就像是特斯拉的自動化生產線,它能夠快速且有效地生產各種不同的產品。當我們應用這個模式到程式設計中時,不僅減少了客戶端的複雜度,也增加了靈活性。下次當你需要建立多種類型的物件時,不妨考慮使用簡單工廠模式來簡化你的程式碼!


為了更好地掌握設計模式的精髓,您可以參考我在iThome鐵人賽中發表的系列文章,其中提供了許多實用範例。
https://ithelp.ithome.com.tw/articles/10353329

avatar-img
ShengYu的沙龍
6會員
83內容數
對於經營自媒體、部落格或社群媒體感興趣?我專注於提供實用的寫作技巧、數位行銷策略,以及個人成長建議。 每週,我會分享提升寫作技巧、優化部落格經營、有效管理社群媒體、以及投資理財的寶貴知識。追蹤我,獲得實用的工具和建議,讓你的個人品牌和財務管理更上一層樓!
留言
avatar-img
留言分享你的想法!
ShengYu的沙龍 的其他內容
最近看到許多有關職場的文章,讓我感觸良多,也想分享一些想法。 當公司遇到財務問題時,裁員往往是最直接的方法。這時候無論你是公司創始元老,還是奉獻多年的資深員工,公司都只看數字。薪水高的、資深的員工,常常會是第一批被裁的對象。 你也許會想:「我對公司有那麼多貢獻,為什麼還會被裁?」但現實是
在職場上,許多人都會面臨不快樂的情境,可能是因為壓力、工作與生活不平衡、或是缺乏成就感。你是不是也有過這樣的感覺?今天我想分享我最近看到一個成功人士在職場上讓工作變得更快樂的方法與心態轉變的秘訣。 主動爭取機會,掌握主動權 在職場中,最不快樂的感覺往往來自於被動接受工作。如果你總是被丟一堆工
軟體開發中,我們經常會遇到各種令人抓狂的設計問題。有時候是趕進度的壓力讓我們妥協了設計質量;有時候是忽略了好的設計原則,結果掉進了各種反模式的坑裡。今天我們來繼續聊聊幾個常見的反模式。 寫死 Hard Code 直接將資料值或邏輯硬寫死在程式碼裡,當需求變更時,修改這些 Hard Code
最近看到許多有關職場的文章,讓我感觸良多,也想分享一些想法。 當公司遇到財務問題時,裁員往往是最直接的方法。這時候無論你是公司創始元老,還是奉獻多年的資深員工,公司都只看數字。薪水高的、資深的員工,常常會是第一批被裁的對象。 你也許會想:「我對公司有那麼多貢獻,為什麼還會被裁?」但現實是
在職場上,許多人都會面臨不快樂的情境,可能是因為壓力、工作與生活不平衡、或是缺乏成就感。你是不是也有過這樣的感覺?今天我想分享我最近看到一個成功人士在職場上讓工作變得更快樂的方法與心態轉變的秘訣。 主動爭取機會,掌握主動權 在職場中,最不快樂的感覺往往來自於被動接受工作。如果你總是被丟一堆工
軟體開發中,我們經常會遇到各種令人抓狂的設計問題。有時候是趕進度的壓力讓我們妥協了設計質量;有時候是忽略了好的設計原則,結果掉進了各種反模式的坑裡。今天我們來繼續聊聊幾個常見的反模式。 寫死 Hard Code 直接將資料值或邏輯硬寫死在程式碼裡,當需求變更時,修改這些 Hard Code