iT邦幫忙

設計模式相關文章
共有 258 則文章
鐵人賽 Software Development DAY 7

技術 Day7. UML類別圖說明

本文同步更新於blog Class Diagram Class diagram describes the structure of a system by...

鐵人賽 Software Development DAY 26

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

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

鐵人賽 Software Development DAY 4

達標好文 技術 【DAY4】UML (統一建模語言)

UML是一種建立程式模型的圖形語言,可以想像成是帶有語意的圖形記號,圖可以分成兩大類,一種是表達結構用的圖,而另一種是表達行為用的圖形,所有分類如下圖所示。...

鐵人賽 Software Development DAY 6

技術 [Design Pattern] Decorator 裝飾者模式

今天的主題來到了 Decorator Pattern 修飾模式,在進入內文前,讓我們先看一下 GoF 四人幫為它下的定義。 將額外權責動態附加於物件身上,不必...

鐵人賽 Software Development DAY 18

技術 【DAY18】Observer模式 - 訂閱你喜好的Youtuber!

各位應該都有在 Youtube 看過影片的經驗吧!如果想要看到影片,可以直接在 Youtube 上面搜尋關鍵字,或者在各別 Youtuber 的頻道中看到他們的...

鐵人賽 Software Development DAY 24

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

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

鐵人賽 Software Development DAY 23

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

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

鐵人賽 Software Development DAY 25

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

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

鐵人賽 Software Development DAY 13

技術 【DAY13】淺談設計模式的原則與策略

今天我們要來談談設計模式的原則與策略,理解設計模式本質機制和它們背後的原則概念。當累積這些知識後,即使在未來寫程式時,還沒有發現設計模式的情況下,也能夠知道該怎...

鐵人賽 Software Development DAY 27

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

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

鐵人賽 Software Development DAY 10

技術 【DAY10】Bridge模式 - 矛盾的解釋

讓我們沿用上一篇轉接頭的例子,在之前我們都一直是以「螢幕」作為一端去跟電腦做連線,假設現在我們把範圍擴大,將螢幕做分類,可能有不同規格類型的螢幕會需要跟電腦做連...

鐵人賽 Software Development DAY 28

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

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

達標好文 技術 【財政部查詢類電子發票API】框架解說 C#

小弟之前有分享過串接【財政部查詢類電子發票API】小框架使用文 使用文連結 快速使用財政部電子發票API 使用 C#串接文件下載 電子發票查詢API 1.4.4...

鐵人賽 Software Development DAY 16

技術 [Design Pattern] State 狀態模式

[Design Pattern] State 狀態模式 今天要介紹的 pattern 是 state pattern。在現實生活中,我們的服務或產品很常會需要根...

鐵人賽 Software Development DAY 2

技術 【DAY2】什麼是物件導向範型?(上)

範型定義 範型(paradigm),即為典型範例 - 標準結構化程式設計比較異同的方式,可以想像成一種程式設計風格。常見的範型還有:函數式程式設計、指令式程式設...

鐵人賽 Software Development DAY 12

技術 [Design Pattern] Singleton 單例模式

很多時候會希望一個類別只會有唯一一個實體,像是 DB 的接口、應用程式的偏好設定、 一個中國。 這時就會需要 Singleton Pattern 了。它的實作很...

鐵人賽 Software Development DAY 8

技術 [Design Pattern] Adapter 配接器模式

今天要來聊聊的是大家生活中很常見的 Adapter 配接器模式,請大家先看 VCR,噢,是定義。 將類別的介面轉換成外界所預期的另一種介面,讓原先囿於介面不相...

鐵人賽 Software Development DAY 29

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

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

鐵人賽 Software Development DAY 30

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

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

鐵人賽 Software Development DAY 1

技術 【DAY1】初心者前言

這是第一次參加IT鐵人賽,也是我剛入軟體業的第一年,對於物件導向以及程式架構也都還是懵懵懂懂,所以希望能夠藉由這次的參賽,讓我對於 OOP & Desi...

鐵人賽 Software Development DAY 3

技術 【DAY3】什麼是物件導向範型?(下)

讓我們延續上一篇的例子~ 學生不僅僅是學生 假設現在的學生不僅僅是一般大學生了,還包含研究生,現在要他們交作業,但不同類型的學生要交的作業不同,做的事情也不一樣...

鐵人賽 Software Development DAY 22

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

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

鐵人賽 Software Development DAY 1

達標好文 技術 [Design Pattern] Introduction

學習設計模式的方式 買(借)本好書 初步了解設計模式 (先有概念) 模仿及練習書上範例 重新再讀一次 以實務需求思考及實作 參考別人經驗 設計模式最有趣的地...

鐵人賽 Software Development DAY 5

技術 【DAY5】學設計模式,WHY?

前面幾天提到物件導向範型以及基礎的UML圖,相信大家應該對物件導向有基本的認識了,所以話說回來,為什麼我們要學習設計模式(Design Pattern)呢? 來...

鐵人賽 Software Development DAY 6

技術 【DAY6】Facade模式 - 今晚...我想來點麥當勞(上)

今晚…我想來點…麥當勞 大家應該都有去麥當勞點餐過的經驗,如果今天我想來個二號餐(雙層牛肉吉士堡),不可能走進去跟做薯條的人說我要一份薯條,再去漢堡區說我要一份...

鐵人賽 Software Development DAY 7

技術 【DAY7】Adapter模式 - 外接螢幕的故事

外接螢幕的故事 之前疫情嚴重時有居家工作一段時間,而公司的筆電是14吋,在家的話想當然就是要爽爽外接大螢幕嘛(竊笑)!於是我就跑去賣場買了一台27吋的螢幕,配合...

鐵人賽 Software Development DAY 5

技術 [Design Pattern] Composite 組合模式

今天我們來介紹一個相當實用的 Pattern: Composite,這個 Pattern 在很多知名的框架都有被套用。它雖然看起來樸實,但是卻威力強大唷!話不多...

鐵人賽 Software Development DAY 9

技術 【DAY9】Strategy模式 - 強化我的轉接器

我們在昨天有留下一個問題,假設今天變成是 AVG的外接口想要去轉成 HDMI,那是不是就要再多一個 AvgToHdmiAdapter 的類別出來並且一樣去繼承...

鐵人賽 Software Development DAY 19

技術 【DAY19】Object Pool模式 - 管理你的昂貴物件池

今天要介紹的是 Object Pool模式,會以工廠的機器為例。假設今天要生產晶片,需要高精密的機器才能去生產,而這台機器又非常昂貴,而且做出機器需要花的時間很...

鐵人賽 Software Development DAY 8

技術 【DAY8】用『新』看物件導向的世界

前面兩天有提到 Facade 和 Adapter 兩種設計模式,裡面的範例程式碼內容基本上是環繞在三個物件導向中的基礎概念:物件、封裝、抽象類別。今天的主要目的...