來杯飲料吧 接下來我們回過頭看第八章─樣板模式。現在我們來看泡茶與泡咖啡的例子,它們有許多共通點:例如這是泡咖啡的程式: /*程式碼待補*/ 而這是泡茶的程式...
proxy decorator mix proxy and decorator summary 代理 Proxy 代理的觀念非常的生活化,像是日本代購、掏寶...
狀態模式優點 套用了狀態模式的糖果機程式,功能跟一開始的寫法相同,卻大幅增加了可維護性,因為它移除了那些複雜的if-else判斷,也可以維持封裝的特性─ 讓既有...
新設計 為了加入這個規則,會發現原本的方法全部都會被改到。那堆if-else都要重新加入新的狀態,可以看看違反了前面提到的哪些規則─ 沒有遵守開放/ 封閉原則,...
設計模式,重要嗎? 我擺在這麼後面的理由,就是因為他不是最重要的,甚至是說,寧願你把程式碼先寫好,也不用先去學設計模式 當你先去學設計模式,你可能會硬套進現有專...
結構型模式之組合模式 受到React Hook啟發,Vue推出了Composition API,從來沒想過[Composition]組合是什麼意思嗎? 今天就來...
糖果機設計 經過轉接器模式後,先快轉進入到第十章─ 狀態模式。本章的舉例是目前有一台糖果機,想要設計一套軟體讓糖果機變成由軟體控制,要求包含在"投入2...
行為型模式:觀察者模式 Observer Design Pattern 如果你用過Vue的Watcher,那你就大概了解了觀察者模式啦。觀察者模式指的是可以[訂...
創建型:抽象工廠模式 昨天看了工廠模式後,今天的抽象工廠就容易入手啦。 昨天我們用工廠模式製作了一個椅子工廠,假如今天我們今天要擴展我們的商業模式,發展系列家具...
物件轉接器與類別轉接器 類別轉接器的圖示則如下: 圖 1 所謂的類別轉接器需要用多重繼承來進行實作,可以看到圖中的差別,在於adapter在物件轉接器中,是...
創建型:工廠模式 工廠模式顧名就是創造東西,可能是物件、類別、甚至方法。 以下這些都是工廠模式: 用函式、方法來做程式的圖形介面 來創造用戶的類別 靜態方法呼...
物件導向轉接器 終於又進入新的篇章啦!這個轉接器與門面模式也是極度常見與好用(也頗好理解)的模式。首先轉接器,顧名思義,就是將介面轉換為另一個介面,以滿足用戶端...
復原按鈕 還記得命令模式的其中一個特色是支持 "可復原" 的操作嗎?這要怎麼實現呢?首先,我們在'Command介面中加入undo()函式,...
實作遙控器 昨天實作了簡單遙控器,今天將遙控器的展開至多個按鈕吧!首先遙控器部分,我們把所有的按鈕用兩個陣列儲存在遙控器中,並將setCommand時改成一次設...
建立command物件 首先,來製作我們的訂單介面─ 對照昨天的圖,就是Command,而它必須有orderUp這個方法讓服務生去呼叫,對應到命令模式就是exe...
遙控器的設計 這章的設計目標是由"遙控器的設計"切入。設想現在有一個好幾個按鈕的遙控器,有2排各n個按鈕,讓使用者設定不同列的按鈕要操控不同...
終於來到第30天,真的是太感動了,沒想到可以完成這一系列設計模式的介紹,最後我們就來回顧一下之前介紹各個模式時的一些要點以及總結。 物件導向原則的總結 在討論設...
終於來到第29天了!今天要介紹的也是這個系列中的最後一個模式,State 模式,我們就直接看範例吧,假設今天有個會員制度,當你存入銀行的錢有超過指定的標準,就會...
今天要介紹的是 Iterator 模式,我們就直接用例子來解釋,假設到了一間餐廳,服務員會來做接待,並且將菜單拿出來,服務員會將上面的菜色都先唸過一遍給客人知道...
最近公司專案有用到「Airflow」來去做排程的處理,剛好跟我們今天要介紹的模式一樣,當我們有一個需求是希望一個工作結束後,會去呼叫另一個工作去執行,像這樣一個...
大家在日常生活中應該常常用「Line」去聯絡吧!今天要介紹的 Mediator 模式就是 Line 應用的模板,當我們在互相聊天時,發送出去的訊息都會透過 Li...
今天要介紹的模式是 Memento ,簡單來說就是備忘錄的概念,也可以想像成用來記錄之前狀態的一個模式,透過 Memento 模式可以將狀態做儲存,如果未來有需...
Proxy 字面上是「代理」的意思,意味著當我們要做去做一些事情前,會先透過代理的這一層,之後才交給真正的物件做處理。我們在現實生活中,就有蠻多會遇到 Prox...
以巧克力工廠為例 前面講了這麼多,還沒有實例登場。這次,書中提到的範例是巧克力工廠─ 工廠的運作依賴著對巧克力鍋爐狀態的偵測,依據不同的狀態執行不同的動作,避免...
獨一無二的物件 又來到了新的模式,這次登場的是 「單例模式」 ─當我們希望一個物件永遠只有一個實例時就會派上用場。這個模式非常簡單,可說是非常不燒腦,了解了就可...
加入食材工廠 最後要進入抽象工廠模式前,先來設想一個情況─前面對於pizza的製作,是由各pizza factory各自create實例化出來,而現在希望連pi...
第六個原則 回顧一下一開始大爆炸的製作披薩寫法。如果不管怎樣的pizza,我們都在同一個pizza store裡面的orderpizza判斷各種pizza的口味...
本文目標: 介紹 UPF 如何處理 UL/DL packets 追蹤 UPF 專案的原始程式碼(本篇注重在 control plane 上) Recap:什...
工廠方法 現在我們想要將披薩的製作從pizzaFactory放回pizzaStore裡,但又想要保持統一框架與彈性,可以怎麼做呢?就是將create這個動作變成...
Flyweight模式又稱享元模式,顧名思義就是共享元件,它使用物件用來儘可能減少記憶體使用量,於相似物件中分享儘可能多的資訊。我們第19天的Object Po...