iT邦幫忙

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

技術 軟體設計原則 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判斷,也可以維持封裝的特性─ 讓既有...

鐵人賽 Software Development DAY 30

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

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

鐵人賽 自我挑戰組 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]組合是什麼意思嗎? 今天就來...

鐵人賽 Software Development DAY 29

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

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

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

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

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

鐵人賽 Modern Web DAY 24

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

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

鐵人賽 Software Development DAY 28

技術 【DAY28】Iterator模式 - 無限輪迴的究極奧秘!

今天要介紹的是 Iterator 模式,我們就直接用例子來解釋,假設到了一間餐廳,服務員會來做接待,並且將菜單拿出來,服務員會將上面的菜色都先唸過一遍給客人知道...

鐵人賽 Modern Web DAY 23

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

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

鐵人賽 Software Development DAY 27

技術 【DAY27】Chain of Responsibility模式 - 排程的背後原理

最近公司專案有用到「Airflow」來去做排程的處理,剛好跟我們今天要介紹的模式一樣,當我們有一個需求是希望一個工作結束後,會去呼叫另一個工作去執行,像這樣一個...

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

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

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

鐵人賽 Modern Web DAY 22

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

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

鐵人賽 Software Development DAY 26

技術 【DAY26】Mediator模式 - 瞭解通訊軟體如何去發送訊息

大家在日常生活中應該常常用「Line」去聯絡吧!今天要介紹的 Mediator 模式就是 Line 應用的模板,當我們在互相聊天時,發送出去的訊息都會透過 Li...

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

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

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

鐵人賽 Software Development DAY 25

技術 【DAY25】Memento模式 - 無限生命值的秘訣!

今天要介紹的模式是 Memento ,簡單來說就是備忘錄的概念,也可以想像成用來記錄之前狀態的一個模式,透過 Memento 模式可以將狀態做儲存,如果未來有需...

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

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

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

鐵人賽 Software Development DAY 24

技術 【DAY24】Proxy模式 - 找個代理人來幫忙你吧!

Proxy 字面上是「代理」的意思,意味著當我們要做去做一些事情前,會先透過代理的這一層,之後才交給真正的物件做處理。我們在現實生活中,就有蠻多會遇到 Prox...

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

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

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

鐵人賽 Software Development DAY 23

技術 【DAY23】Flyweight模式 - 共享的意義

Flyweight模式又稱享元模式,顧名思義就是共享元件,它使用物件用來儘可能減少記憶體使用量,於相似物件中分享儘可能多的資訊。我們第19天的Object Po...

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

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

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

鐵人賽 Software Development DAY 22

技術 【DAY22】Composite模式 - 從種子到大樹的過程

今天我們長話短說,Composite模式主要是希望可以透過同樣的型式對每個物件做操作,並且在操控的物件中是有保持著一種層級關係。以今天的例子來說,我想要只透過一...