iT邦幫忙

設計模式相關文章
共有 258 則文章
鐵人賽 自我挑戰組 DAY 3

技術 DAY16: Decorator 模式

本篇將介紹到 何謂 Decorator 模式 回到電子商務案例去看如何使用它 它的關鍵特徵 使用 Decorator 模式該注意到的事 我們開始吧! 何謂...

鐵人賽 自我挑戰組 DAY 3

技術 DAY12: Bridge 模式1

今天我們要講的是 Bridge 模式。如同 DAY10, DAY11 的 Strategy 模式,我會分做兩篇:案例討論與應用 Bridge 模式以及實際探討何...

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

技術 [Day 1] 深入淺出設計模式- 前言

前言 去年的鐵人賽挑戰leetcode連續刷題一個月(Leetcode刷題筆記),熟悉C++的基本語法與邏輯鍛鍊,今年則是希望可以趁這個機會來好好閱讀軟體設計的...

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

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

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

鐵人賽 自我挑戰組 DAY 3

技術 Day11: Strategy 模式2

今天我們繼續談 strategy 模式。 實作 strategy 模式 DAY10 提到的案例,我們今天來用程式碼來簡單實作一下: 實際的程式碼 首先,先(使用...

鐵人賽 自我挑戰組 DAY 3

技術 DAY18: Template Method 模式

本篇討論 template method 模式,我會涵括 案例:支援兩種資料庫 使用它的時機 Template Method 模式的關鍵特徵 使用它的好處...

鐵人賽 Software Development DAY 24

技術 Day 24:Visitor模式(二)

這邊是假設今天有個是要在玩家全部行動完畢時結束回合,而這邊會用Visitor獲取玩家單位的可行動數量+用Observer每次在控制狀態為等待輸入(CALWait...

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

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

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

鐵人賽 Modern Web DAY 2

技術 第二章、微服務與它們的溝通管道 - PHP 微服務入門與開發

以人來說,溝通很重要,而微服務也是。 對開發者而言,「服務(Service)」應該是一個能夠被單獨布署且能夠自主提供某些功能的應用程式。通常,我們會提供某...

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

技術 [Day 2] 前置準備─ OO與UML

前言 萬事起頭難,這兩天就先從最初的設計模式入門開始,開始感受設計模式的用處,並掌握設計模式的幾項大原則吧! 物件導向 Design Pattern充分使用OO...

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

技術 [Day 6] 觀察者模式 (1)

RECAP 有了各種設計模式的定義,就可以用短短的名詞來代表背後的概念,幫助我們在設計程式時有效溝通,準確傳達想法;經由學習這些經過時間考驗與綜合眾工程師智慧的...

鐵人賽 Software Development DAY 13

技術 Day 13:Facade模式

外觀模式(Facade)在GoF 的解釋是:「替子系統定義一組統一的介面,這個高階的介面會讓子系統更容易被使用。」 使用Facade的最大優點,就是將系統內部的...

鐵人賽 Software Development DAY 15

技術 Day 15:Factory模式(一)

GoF對工廠方法模式 (Factory Method) 的解釋是:「定義一個可以產生物件的介面,但是子類別決定要產生哪一個類別的物件。工廠方法讓類別的實例化程序...

鐵人賽 Software Development DAY 17

技術 Day 17:Observer模式(一)

GoF對於Observer的定義為「在物件之間定一個一對多的的連結方法,當一個物件變換狀態時,其它關連的物件都會自動收到通知」 你也可以這樣說—Observ...

鐵人賽 自我挑戰組 DAY 3

技術 DAY22: Factory Method 模式

今天我們會介紹 factory method 模式。 起手式:丟出案例。 提供兩個資料庫連結的那個案例 我們在 DAY18 中講到了一個案例: 系統要能夠支援...

鐵人賽 自我挑戰組 DAY 3

技術 DAY15: 使用設計模式的原則與策略

我們暫時停下介紹下一個設計模式。本篇將再回頭審思一些設計模式中的基礎以及討論各種原則與策略。 接下來我們會提到: 開閉原則(Open Closed Princ...

鐵人賽 自我挑戰組 DAY 2

技術 [Day02] Design Pattern - 設計模式的各個種類

設計模式的種類 今天來介紹設計模式有哪些以及分類! 目前設計模式有23種,根據他們的使用目的、複雜度、架構可以區分為三類(來自GoF的分類): Creati...

鐵人賽 Software Development DAY 23

技術 Day 23:Visitor模式(一)

GoF定義「定義一個能夠實行在一個物件架構中對於所有元素的操作。訪問者讓你可以定義一個新的操作,而不必更動到被操作元素的類別介面」 Visitor會去參訪所...

鐵人賽 Software Development DAY 16

技術 Day 16:Factory模式(二)

在這款遊戲中,我們共有兩個敵方單位、一個障礙物單位、兩個玩家單位,在這個範例中,我想用Factory模式來實作生成單位在地圖上的功能。 如果今天要實作一個隨機生...

鐵人賽 Software Development DAY 20

技術 Day 20:Bridge模式(二)

在這次的範例裡,主要是說明IUnit如何取用ActionAbility的使用 這邊的AbilityEditor是用來擺放技能的地方,只要擺上對應的技能就可以在遊...

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

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

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

鐵人賽 Software Development DAY 12

技術 Day 12:State模式(二)

接續昨天的文章,在這次的範例中,是希望更改CALGUIController裡顯示回合階段的判斷條件,在重構前我是這樣去做回合階段的顯示CALGUIControl...

鐵人賽 Software Development DAY 18

技術 Day 18:Observer模式(二)

今天我想重構的,是下圖中那個更新麵包獲取數的UI程式 重構前的程式碼 GetFoodAndFleeGameEndCondition.cs private voi...

鐵人賽 Software Development DAY 21

技術 Day 21:Adapter模式與外接對話框插件

GoF對於轉接器模式 (Adapter)的定義是:「將一個類別的介面轉換成為客戶端期待的類別介面。轉接器模式讓原本介面不相容的類別能一起合作」 Adapte...

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

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

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

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

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

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

技術 [深入淺出設計模式] Ch8 The Template Method Pattern (1) - 模板模式 範例 製作飲料

太久沒寫c++了 來找一下手感所以這次是c++的範例喔~ 這是書中的範例喔,假設今天我們要來寫製作飲品的食譜,分別有茶跟飲料兩種類別 (先省略方法細節): cl...

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

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

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

鐵人賽 Software Development DAY 22

技術 Day 22:Memento模式

GoF 對備忘錄模式(Memento)的定義是:「在不違反封裝的原則下,取得一個物件的內部狀態並保留在外部,讓該物件可以在日後恢復到原先保留的狀態。」 以存...

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

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

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