為什麼需要模組化結構? 這個話題我跟 AI 討論很久,就老實跟大家說吧,文章順序考慮很久,砍了又改、改了又砍。那麼,還是先把架構講清楚吧! 首先,我不想這變成一...
上篇講完這個範例的需求,簡單來說我們現在要寫一個通用的介面Iterator,讓Waiter可以方便取得不同資料型態儲存資料的餐廳菜單資訊,用統一的方式去迭代資料...
書中給了一個好懂的範例,假設我們所在的小鎮有兩間有名的餐廳,Pancake House 跟 Diner。突然有個機會要開一間快閃店,要提供以上兩餐廳的食物分別作...
上篇解釋完模板模式手癢還是把書中另一個排序的範例寫了一下哈哈假設今天有不同的動物類別共同點是他們都有某種數值可以排序我們就可以繼續用模板模式啦~ 首先定義了一個...
太久沒寫c++了 來找一下手感所以這次是c++的範例喔~ 這是書中的範例喔,假設今天我們要來寫製作飲品的食譜,分別有茶跟飲料兩種類別 (先省略方法細節): cl...
沒想到從完賽後荒廢了這麼久XD想說再往下一章看之前 先複習一下前面的觀念順便實作上篇提到的迪米特法則看看⋯⋯假設今天要設計一個簡單的超市結帳系統會需要類別 It...
The Principle of Least Knowledge 迪米特法則 talk only to your immediate friends. 概...
範例 Home Sweet Home Theater 家庭劇院 延續上篇,接著來完成方法 watchMovie(),執行看電影的動作 public void w...
定義 Memento is a behavioral design pattern that lets you save and restore the p...
Meta Command Pattern "Allows you to create macros of commands so that you...
命令模式 前面提過命令模式的概念,感覺還是挺抽象的,所以書中有更好懂的譬喻,假設今天我們到一個餐廳用餐,首先我們 Client 點餐時會先看菜單選項 ,決定好再...
範例 Home Automation Remote Control 家電智能遙控 還記得我們在觀察者模式的時候,書中讓我們接了一個寫天氣監測系統的「案子」,當...
命令模式 The Command Pattern 主要概念是將請求或操作封裝成對象,以便在不同的情境下執行這些請求,同時使得我們能夠解耦發出請求的對象和實際執行...
單例模式 範例 Website registration 網站註冊 假設今天我們要架設一個網站的註冊系統,我們就會希望系統只有一個合法的註冊中心,所有使用者只能...
前言 今天上班的時候師父剛好教我設定公司電腦的proxy😶🌫️結果很巧的今天就輪到要來寫這篇! 定義 Proxy is a structural d...
Singleton Pattern 單例模式 在特定情況下,我們會希望某一些類別的物件只有一個,通常會用global variable 讓它是靜態變數。(例如設...
前言 今天師父請假在公司自立自強然後主管為我上了堂有趣的產品課😊我還在喜歡上班的階段 好好珍惜😚 定義 Flyweight is a structura...
定義 Facade is a structural design pattern that provides a simplified interface...
目前為止書中提過的設計原則 有鑒於本人的金魚腦,讀到現在已經快要忘記書中提過的設計原則,所以來幫自己恢復一下記憶~ Encapsulate what var...
抽象工廠模式 Abstract Factory Pattern 跟工廠方法模式一樣,都會把製造方法放在工廠中,跟客戶端分離。 每個工廠會對同一個食材介面...
前言 中秋快樂!! 定義 Composite is a structural design pattern that lets you compose...
工廠模式 範例: Pizza Store 上篇我們已經完成工廠跟Pizza的抽象類別,現在來看看子類別要如何實現Pizza(),在這之前要先完成食材的類別(這邊...
前言 今天最感動的是我實習的training終於完成了~~🥳這也代表我要開始碰到正式專案了😶🌫️ 定義 Bridge is a structural...
在微服務架構中,每個微服務都是一個獨立的單元,擁有自己的資料庫和交易管理。由於微服務之間可能需要進行交互操作,因此確保每個微服務的交易安全和資源操作的安全性是非...
最近剛接到人生中第一個案子,好像有點不夠認真寫這邊的文章🥲,但對於密集的學習設計模式有蠻多心得和感動想要分享,絕對不是因為我的案子今天審查所以我沒時間看書。(哭...
前言 今天來說一個跟昨天的工廠方法模式有點像的...Abstract Factory~抽象工廠模式!! 看這篇前建議先去看前一天的工廠方法模式歐~~點我去Day...
想要解決的問題 如何將可能變動的邏輯抽出,讓該邏輯視需求動態抽換? 架構設計中,有許多邏輯都會可能會變動。需要事先辨認那些是可能變動的部分。並抽出這些變動的邏輯...
前言 今天去拔智齒🥲咬紗布咬了好久還要歪著頭吃粥XD雖然臉頰在發熱但是鐵人還是要繼續!! 今天要講工廠模式了~前三天好像花了有點多時間在實作MVC上,懊惱過...
思考的問題 如何通過組合多的不同的類別與物件,完成複雜的需求? 當有複雜的需求時,有甚麼方法可以組合這些類別呢?常見的方式包含:外觀模式、轉接器模式、裝飾者模式...
思考的問題 在建立物件時,有各種特殊的需求,有甚麼經典設計模式可以參考? 在設計模式中,定義了許多關於建立物件的經典設計模式,在此處並不會詳細說明如何實作這些設...