iT邦幫忙

工程師相關文章
共有 57 則文章
鐵人賽 Software Development DAY 30

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

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

鐵人賽 Software Development DAY 29

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

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

鐵人賽 Software Development DAY 28

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

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

鐵人賽 Software Development DAY 27

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

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

鐵人賽 Software Development DAY 26

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

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

鐵人賽 Software Development DAY 25

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

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

鐵人賽 Software Development DAY 24

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

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

鐵人賽 Software Development DAY 23

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

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

鐵人賽 Software Development DAY 22

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

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

鐵人賽 Software Development DAY 21

技術 【DAY21】Prototype模式 - 無限複製的秘訣!

今天要來介紹Prototype模式,簡單來說就是「複製」,在第19天時我們有提到說建立物件池去保存昂貴物件,那麼當我現在已經財富自由了,不用去管制購買機器的數量...

鐵人賽 Software Development DAY 20

技術 【DAY20】Builder模式 - 今晚...我想來點麥當勞(下)

我們在 DAY6 有用麥當勞的例子來介紹 Facade模式,今天我們再用麥當勞來舉例。假設今天到了麥當勞櫃台,我們不點套餐了,就是單點(雖然比較貴XD),而店員...

鐵人賽 Software Development DAY 19

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

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

鐵人賽 Software Development DAY 18

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

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

鐵人賽 Software Development DAY 17

技術 【DAY17】Double-Checked Locking模式 - 多執行序環境

昨天提到,可以用Singleton模式,讓實體永遠只會建立一次。但如果現在是在多執行序的環境下,會發生什麼事呢? 第一個執行緒檢查實體是否存在。因為實體不存在...

鐵人賽 Software Development DAY 16

技術 【DAY16】Singleton模式 - 那些年,我們一起搖的飲料(番外篇)

再延續昨天的例子,今天的我終於下定決心要減肥了,我規定我一天只能喝一杯奶茶,所以如果去買奶茶的話,店員只會給我一杯,如果再要第二杯,店員只會把剛剛做好的第一杯再...

鐵人賽 Software Development DAY 15

技術 【DAY15】Template模式 - 那些年,我們一起搖的飲料(下)

延續昨天的例子,我們在製作飲料的過程中,其實整體步驟都是蠻相像的,不外乎就是先煮沸水,加入茶葉煮成茶,加入冰塊以及配料,最後封膜打包給客人,這一系列的流程很類似...

鐵人賽 Software Development DAY 14

技術 【DAY14】Decorator模式 - 那些年,我們一起搖的飲料(上)

之前大學時期曾經短暫的在飲料店打過工,想說體驗一下不同的工作,那時候也是我體重的巔峰,因為每天都可以喝飲料,只要在店裡,基本上所有的飲料都可以喝,而且想要加什麼...

鐵人賽 Software Development DAY 13

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

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

鐵人賽 Software Development DAY 12

技術 【DAY12】Abstract Factory模式 - 升級工廠2.0

昨天我們談到了 Factory模式,工廠可以生產實作同個介面 IShape的各種形狀。假設今天再多一個條件是「顏色」,而店家會去販售特定形狀的卡片搭配特定顏色的...

鐵人賽 Software Development DAY 11

技術 【DAY11】Factory模式 - 來當工廠老闆吧!

今天介紹的是工廠模式,因為會跟明天的 Abstract Factory 有點關係,所以先來說一下,這個工廠模式,相對我們前幾天談到的其他模式都還要單純很多,也很...

鐵人賽 Software Development DAY 10

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

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

鐵人賽 Software Development DAY 9

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

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

鐵人賽 Software Development DAY 8

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

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

鐵人賽 Software Development DAY 7

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

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

鐵人賽 Software Development DAY 6

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

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

鐵人賽 Software Development DAY 5

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

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

鐵人賽 Software Development DAY 4

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

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

鐵人賽 Software Development DAY 3

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

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

鐵人賽 Software Development DAY 2

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

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

鐵人賽 Software Development DAY 1

技術 【DAY1】初心者前言

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