iT邦幫忙

設計模式相關文章
共有 258 則文章
鐵人賽 Software Development DAY 23
玩轉C# 進階學習之旅 系列 第 23

技術 玩轉C#之【設計模式-Design Pattern】

小心設計模式別亂用 介紹 設計模式就是過去的人,根據常見的軟體設計的問題,提出的解決方案。設計模式總共有23種,根據情境分成三大類型,建立型、結構型、行為型。...

鐵人賽 Software Development DAY 8

技術 Day 8:Singleton模式

Singleton的定義 單例模式(Singleton)在GOF 中的說明是:「確認類別只有一個物件,並且提供一個全域的方法來取得這個物件」講得更簡單點,Sin...

鐵人賽 Software Development DAY 11

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

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

鐵人賽 Software Development DAY 22
玩轉C# 進階學習之旅 系列 第 22

技術 玩轉C#之【SOLID】

介紹 何謂原則(Principle) A principle is a concept or value that is a guide for behavi...

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

技術 [Day 7] 觀察者模式 (2)

觀察者模式的情境 所謂的觀察者模式,顧名思義,主要就是由兩個角色所組成:觀察者(observer)與被觀察者(subject);也可以用發布者與訂閱者來想像它們...

鐵人賽 Software Development DAY 7

技術 Day 7:何謂設計模式?

今天要來說佔了接下來將近一半天數的設計模式了,畢竟說到擴充性,沒有比設計模式更加廣為人知的詞彙,畢竟設計模式可說是物件導向實踐的重要範本。更何況設計模式是一個已...

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

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

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

鐵人賽 Software Development DAY 10

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

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

鐵人賽 Software Development DAY 9

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

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

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

技術 [Day 5] 策略模式 (3)

集大成的UML 經過前幾天的內容,以上都了解後,應該也可以順利地組合出最終UML的樣子了:(參考原書以draw.io繪製)可以看到會變的部分被封裝了起來,其他行...

鐵人賽 Software Development DAY 8

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

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

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

技術 [Day 4] 策略模式 (2)

第二個原則 接續昨天的問題,我們要來看如何更彈性的設計出這個架構!那要怎麼應用呢?書本提到了第二個原則: 針對"介面"而非"實作...

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

技術 [Day 3] 策略模式 (1)

軟體開發的不變真理─改變 設計程式時,當我們收到需求之後,要做出來很容易,要做得好的上下限卻差很多。如果你能確保這軟體寫完用一次就不需要了,未來不支持更新,那你...

鐵人賽 Software Development DAY 7

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

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

鐵人賽 Software Development DAY 6

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

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

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

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

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

鐵人賽 Software Development DAY 5

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

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

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

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

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

鐵人賽 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...

鐵人賽 Software Development DAY 21
全端工程師生存筆記 系列 第 21

技術 [面試][設計模式]Code Review 會注意哪些事?會依照什麼原則對程式做 Refactoring?

在功能穩定後,你對程式碼還有要求嗎? 「沒有最好的程式,只有更好的程式。」在完成功能後 Code Review 是非常重要的事情;不只看自己的程式碼,也要多...

技術 Day 57. 系列完結心得

嗨,我是Bear。 遵守在Day30時與自己的約定,於年前寫完所有設計模式。稍晚會將目錄更新至Day1。 以下這段話給2019年的自己 讀書會還好玩吧?...

技術 Day56. 範例:各國婚禮(訪問者模式)

本文同步更新於blog 情境:這是一間國際婚禮公司 <?php namespace App\VisitorPattern\Wedding;...

技術 Day55. 訪問者模式

本文同步更新於blog Visitor Pattern 允許在不改變組合內各元素的情況下,增加各元素的新操作。。 訪問者模式會將類別分為兩類:分別是訪問者...

技術 Day54. 範例:打招呼(中介者模式)

本文同步更新於blog 情境:以下是人腦的運作程式 <?php namespace App\MediatorPattern\SayHello;...

技術 Day53. 中介者模式

本文同步更新於blog Mediator Pattern 集中相關對象的之間複雜的溝通與控制方式。 中介者模式會將類別分為兩類:分別是中介者類別 (Med...

技術 Day52. 範例:新產品開發(職責鏈模式)

本文同步更新於blog 情境:公司開發了一個新產品,客戶端有許多不同的請求 客戶端的請求類別 <?php namespace App\Ch...

技術 Day51. 職責鏈模式

本文同步更新於blog Chain Of Responsibility Pattern 使多個物件都有機會處理請求, 從而避免請求的發送者和接受者間的耦合關...