iT邦幫忙

design pattern相關文章
共有 491 則文章

技術 Design Pattern - Strategy(策略模式),鴨子哌哌

策略模式 策略模式也是一種好用的模式,可以封裝並獨立不同的演算法,符合SRP單一職責原則跟OCP開放關閉原則。透過composition的方式,將演算法放入物件...

技術 Design Pattern - Factory method(工廠方法),Factory生產Product

工廠方法-Factory method 這應該是大家學design pattern第一個遇到的pattern吧,這個pattern有兩個角色 一個是 Fact...

技術 Design Pattern - Template method(樣板方法模式),來開一間飲料店吧

樣板方法模式-Template method 最近在學design pattern,看到一個模式很熟悉,原來是曾經在一個爬蟲系統中見過使用這個架構。 應用 這...

技術 如何提高程式碼的可測試性 (Testability)

眾所皆知,寫單元測試有非常多好處,但有些主管會問,為什麼寫測試會讓工程師額外花這麼多時間?除了因為缺乏單元測試技術知識外,根本原因是產品程式碼的可測試性太低,導...

技術 多此一舉! 不要這樣用 Java 8 Optional

Java 8 新加入了 Optional 類別,能省去繁瑣的 null check 流程,豐富的 API 也讓程式邏輯看起來更簡潔、易讀。但我卻看到了不少錯誤的...

技術 軟體設計原則 DRY (Don't repeat yourself)

DRY (Don't repeat yourself),是敏捷開發的核心設計原則之一。DRY 原則規定,對於每個知識點,系統中都只有一個明確而權威的表示。這個原...

技術 軟體設計原則 YAGNI (You aren't gonna need it!)

YAGNI (You aren't gonna need it!),是敏捷開發的核心設計原則之一。此原則指出,程式開發者應該在面臨確鑿的需求時,才實作相應的功能...

技術 常見的 Java Interface 錯誤用法

在 Java 專案中,應該不少人看過或寫過只有一個實作(implementation)的介面 (interface),並且以 interface-impl 的風...

鐵人賽 自我挑戰組 DAY 30
設計模式探索 系列 第 30

技術 [Day 30] To be continued...

心得 雖然還沒把整本書的內容都整理完,但鐵人30已經告一段落~回顧一下這本書總共14章,而這30篇涵蓋了1~8、10章的內容,剩下代理模式、複合模式,以及後面的...

鐵人賽 自我挑戰組 DAY 29
設計模式探索 系列 第 29

技術 [Day 29] 樣板方法模式 (3)

實際使用中的樣板方法 書中舉了 Java API 實際使用樣板方法的例子,其中一個是排序的sort()。sort()是一個靜態方法,而要使用這個排序方法,就要求...

鐵人賽 DevOps

技術 設計模式與重構

筆者在最近幾個月陸續看了一些與設計模式、軟體重構有關的書籍: 設計重構 The Uber Go Style Guide Hey! Go Design P...

鐵人賽 自我挑戰組 DAY 28
設計模式探索 系列 第 28

技術 [Day 28] 樣板方法模式 (2)

掛勾 在一個樣板方法中,它的結構大概會長這樣: class AbstractClass { void templateMethod() {...

鐵人賽 自我挑戰組 DAY 27
設計模式探索 系列 第 27

技術 [Day 27] 樣板方法模式 (1)

來杯飲料吧 接下來我們回過頭看第八章─樣板模式。現在我們來看泡茶與泡咖啡的例子,它們有許多共通點:例如這是泡咖啡的程式: /*程式碼待補*/ 而這是泡茶的程式...

鐵人賽 Software Development DAY 27
Kotlin on the way 系列 第 27

技術 Day 27 設計模式 裝飾和代理的細節 Proxy pattern and Decorator pattern Structural

proxy decorator mix proxy and decorator summary 代理 Proxy 代理的觀念非常的生活化,像是日本代購、掏寶...

鐵人賽 自我挑戰組 DAY 26
設計模式探索 系列 第 26

技術 [Day 26] 狀態模式 (3)

狀態模式優點 套用了狀態模式的糖果機程式,功能跟一開始的寫法相同,卻大幅增加了可維護性,因為它移除了那些複雜的if-else判斷,也可以維持封裝的特性─ 讓既有...

鐵人賽 自我挑戰組 DAY 25
設計模式探索 系列 第 25

技術 [Day 25] 狀態模式 (2)

新設計 為了加入這個規則,會發現原本的方法全部都會被改到。那堆if-else都要重新加入新的狀態,可以看看違反了前面提到的哪些規則─ 沒有遵守開放/ 封閉原則,...

鐵人賽 Software Development DAY 25
Kotlin on the way 系列 第 25

技術 Day 25 設計模式 單例模式的細節 Design pattern - Singleton Creational pattern

設計模式,重要嗎? 我擺在這麼後面的理由,就是因為他不是最重要的,甚至是說,寧願你把程式碼先寫好,也不用先去學設計模式 當你先去學設計模式,你可能會硬套進現有專...

鐵人賽 Modern Web DAY 25

技術 組合模式-用TS挑戰設計模式-D25

結構型模式之組合模式 受到React Hook啟發,Vue推出了Composition API,從來沒想過[Composition]組合是什麼意思嗎? 今天就來...

鐵人賽 自我挑戰組 DAY 24
設計模式探索 系列 第 24

技術 [Day 24] 狀態模式 (1)

糖果機設計 經過轉接器模式後,先快轉進入到第十章─ 狀態模式。本章的舉例是目前有一台糖果機,想要設計一套軟體讓糖果機變成由軟體控制,要求包含在"投入2...

鐵人賽 Modern Web DAY 24

技術 觀察者模式-用TS挑戰設計模式-D24

行為型模式:觀察者模式 Observer Design Pattern 如果你用過Vue的Watcher,那你就大概了解了觀察者模式啦。觀察者模式指的是可以[訂...

鐵人賽 Modern Web DAY 23

技術 抽象工廠模式-用TS挑戰設計模式-D23

創建型:抽象工廠模式 昨天看了工廠模式後,今天的抽象工廠就容易入手啦。 昨天我們用工廠模式製作了一個椅子工廠,假如今天我們今天要擴展我們的商業模式,發展系列家具...

鐵人賽 自我挑戰組 DAY 22
設計模式探索 系列 第 22

技術 [Day 22] 轉接器與門面模式 (2)

物件轉接器與類別轉接器 類別轉接器的圖示則如下: 圖 1 所謂的類別轉接器需要用多重繼承來進行實作,可以看到圖中的差別,在於adapter在物件轉接器中,是...

鐵人賽 Modern Web DAY 22

技術 工廠模式-用TS挑戰設計模式-D22

創建型:工廠模式 工廠模式顧名就是創造東西,可能是物件、類別、甚至方法。 以下這些都是工廠模式: 用函式、方法來做程式的圖形介面 來創造用戶的類別 靜態方法呼...

鐵人賽 自我挑戰組 DAY 21
設計模式探索 系列 第 21

技術 [Day 21] 轉接器與門面模式 (1)

物件導向轉接器 終於又進入新的篇章啦!這個轉接器與門面模式也是極度常見與好用(也頗好理解)的模式。首先轉接器,顧名思義,就是將介面轉換為另一個介面,以滿足用戶端...

鐵人賽 自我挑戰組 DAY 20
設計模式探索 系列 第 20

技術 [Day 20] 命令模式 (4)

復原按鈕 還記得命令模式的其中一個特色是支持 "可復原" 的操作嗎?這要怎麼實現呢?首先,我們在'Command介面中加入undo()函式,...

鐵人賽 自我挑戰組 DAY 19
設計模式探索 系列 第 19

技術 [Day 19] 命令模式 (3)

實作遙控器 昨天實作了簡單遙控器,今天將遙控器的展開至多個按鈕吧!首先遙控器部分,我們把所有的按鈕用兩個陣列儲存在遙控器中,並將setCommand時改成一次設...

鐵人賽 自我挑戰組 DAY 18
設計模式探索 系列 第 18

技術 [Day 18] 命令模式 (2)

建立command物件 首先,來製作我們的訂單介面─ 對照昨天的圖,就是Command,而它必須有orderUp這個方法讓服務生去呼叫,對應到命令模式就是exe...

鐵人賽 自我挑戰組 DAY 17
設計模式探索 系列 第 17

技術 [Day 17] 命令模式 (1)

遙控器的設計 這章的設計目標是由"遙控器的設計"切入。設想現在有一個好幾個按鈕的遙控器,有2排各n個按鈕,讓使用者設定不同列的按鈕要操控不同...

鐵人賽 Software Development DAY 30

技術 【DAY30】設計模式回顧 - 三十天總結

終於來到第30天,真的是太感動了,沒想到可以完成這一系列設計模式的介紹,最後我們就來回顧一下之前介紹各個模式時的一些要點以及總結。 物件導向原則的總結 在討論設...

鐵人賽 Software Development DAY 29

技術 【DAY29】State模式 - 升級成黃金會員的最後一哩路

終於來到第29天了!今天要介紹的也是這個系列中的最後一個模式,State 模式,我們就直接看範例吧,假設今天有個會員制度,當你存入銀行的錢有超過指定的標準,就會...