今天要介紹的是 Object Pool模式,會以工廠的機器為例。假設今天要生產晶片,需要高精密的機器才能去生產,而這台機器又非常昂貴,而且做出機器需要花的時間很...
前面兩天有提到 Facade 和 Adapter 兩種設計模式,裡面的範例程式碼內容基本上是環繞在三個物件導向中的基礎概念:物件、封裝、抽象類別。今天的主要目的...
之前大學時期曾經短暫的在飲料店打過工,想說體驗一下不同的工作,那時候也是我體重的巔峰,因為每天都可以喝飲料,只要在店裡,基本上所有的飲料都可以喝,而且想要加什麼...
今天介紹的是工廠模式,因為會跟明天的 Abstract Factory 有點關係,所以先來說一下,這個工廠模式,相對我們前幾天談到的其他模式都還要單純很多,也很...
昨天我們談到了 Factory模式,工廠可以生產實作同個介面 IShape的各種形狀。假設今天再多一個條件是「顏色」,而店家會去販售特定形狀的卡片搭配特定顏色的...
今天要來介紹Prototype模式,簡單來說就是「複製」,在第19天時我們有提到說建立物件池去保存昂貴物件,那麼當我現在已經財富自由了,不用去管制購買機器的數量...
延續昨天的例子,我們在製作飲料的過程中,其實整體步驟都是蠻相像的,不外乎就是先煮沸水,加入茶葉煮成茶,加入冰塊以及配料,最後封膜打包給客人,這一系列的流程很類似...
再延續昨天的例子,今天的我終於下定決心要減肥了,我規定我一天只能喝一杯奶茶,所以如果去買奶茶的話,店員只會給我一杯,如果再要第二杯,店員只會把剛剛做好的第一杯再...
我們在 DAY6 有用麥當勞的例子來介紹 Facade模式,今天我們再用麥當勞來舉例。假設今天到了麥當勞櫃台,我們不點套餐了,就是單點(雖然比較貴XD),而店員...
昨天提到,可以用Singleton模式,讓實體永遠只會建立一次。但如果現在是在多執行序的環境下,會發生什麼事呢? 第一個執行緒檢查實體是否存在。因為實體不存在...
使用單例模式實做線性分配器(2/2) 延續Day28.使用單例模式實做線性分配器(1/2)的需求,我們接下來要開始實作取號的方法。 Sample Codes...
Iterator 迭代器模式 需求描述 Amy(PO): As a 電商老闆I want 舉辦行銷活動,購物車結帳時: 書籍雜誌:會員相同類別10本以上八折...
Java 8 新加入了 Optional 類別,能省去繁瑣的 null check 流程,豐富的 API 也讓程式邏輯看起來更簡潔、易讀。但我卻看到了不少錯誤的...
Chain of Responsibility 職責鍊模式 需求描述 Amy(PO): As a 產品經理I want 多國語系介面So that 顯示使用者...
Observer 觀察者模式 定義 定義對象之間的一對多依賴關係,當一個對象更改狀態時,會自動通知並更新其所有依賴的對象。(WIKI) UML Obse...
前言 時間過得很快,距離2019鐵人挑戰賽將近一年了,在這一年間除了持續進行android程式設計的開發之外,也接觸了不少新東西!例如:重構、實作模式、測試驅動...
Bridge 橋接模式 需求描述 Amy(PO): As a 建立訂單的秘書I want 可以在同一介面上依據各供應商、產品和是否急件列印不同格式的訂單So...
在功能穩定後,你對程式碼還有要求嗎? 「沒有最好的程式,只有更好的程式。」在完成功能後 Code Review 是非常重要的事情;不只看自己的程式碼,也要多...
Strategy 策略模式 需求描述 Amy(PO): As a 資料分析者I want 使用者在執行任一系統功能時,系統可以記錄使用記錄在文字檔So tha...
Interpreter 解譯器模式 Interpreter的中文也被稱為翻譯者模式或解釋器模式。 需求描述 Amy(PO): As a 資料分析者I wa...
Adapter 適配器模式 需求描述 Amy(PO): As a 資料分析者I want 系統可以介接XX店家二代卡機傳回來的EDI並整理資料後存放在資料庫S...
在ASP.NET Core利用建造者模式來製造View Model Scenario 專案中需要在MVC同一個VIEW上動態依照後端提供的每種產品規格(View...
IOC是一個oop重要的程式設計思想。 此文帶著大家初探 IOC(控制反轉) , DI(依賴注入) ~~ 案例解釋: 小明是個愛乾淨的人,但他工作時常加班導致...
Factory 工廠模式 需求描述 Lily(Team member): As a 開發人員I want 建立一個Interface來讓開發人員建立各資料庫連...
Prototype 原型模式 需求描述 Amy(PO): As a 系統使用者I want 降低查詢線上交易報表的回應時間So that 提高作業效率 思考...
2023/04/05 更新: 為了避免本文章散落在不同網站,之後統一由部落格更新,再麻煩從部落格查看~ 什麼是 Fan-Out Fan-In Pattern...
本文同步於個人部落格 今天接著介紹第二個Design Principle。那就廢話不多說直接開始吧!! 定義 Software entities li...
State 狀態模式 需求描述 Amy(PO): As a 提需求單的使用者I want 需求單管理系統支援在某個需求的狀態改變時,記錄時間並以Email通知...
本文同步於個人Blog 昨天我們介紹了七個Design Principle,也用簡單的例子讓大家初步認識每個Principle的作用。進而了解了若要使用Desi...
在一些微服務的規劃中,微服務類似將單體系統切割成多個高內聚的獨立模組,且服務與服務間鬆耦合。 假設在單體系統,改了某個業務邏輯與相關的程式,卻於另外一個功能模...