iT邦幫忙

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

技術 Day39. 建造者模式

本文同步更新於blog Builder Pattern 將複雜對象的構建與其表示分離。 建造者模式會將類別分為三類:分別是指揮者類別 (Director)...

技術 [破] 第三堂課:程式設計模式討論與思辯

今日的課程是由我們課程助教Tyson來主講。 重點針對於前端的架構設計解析。 首先,我們要問怎麼樣才是一個好的程式架構? 很多從junior工程師要進階到s...

技術 Day38. 範例:三隻小豬 (原型模式)

本文同步更新於blog 情境:三隻小豬想要蓋房子 首先是牆壁,可以選擇不同的建材 <?php namespace App\Prototype...

技術 Day50. 範例:十二生肖

本文同步更新於blog 情境:玉皇大帝要舉辦渡河比賽,動物選手各顯神通。 <?php namespace App\BridgePattern\...

鐵人賽 Software Development DAY 16

技術 [Day16] 橋接模式 | Bridge Pattern

此文同步於個人Blog 定義 將抽象部分與實現部分分離,使它們都可以獨立的變化。 橋接模式(Bridge Pattern)是用合成關係代替繼承關係,進...

鐵人賽 Software Development DAY 2
Hey! Go Design Patterns 系列 第 2

技術 DAY 2:Single Threaded Execution Pattern,門就只有一個大家好好排隊啊~

2023/04/05 更新: 為了避免本文章散落在不同網站,之後統一由部落格更新,再麻煩從部落格查看~ 什麼是 Single Threaded Execut...

鐵人賽 Modern Web DAY 6

技術 Day 06 - Design System — 為什麼前端工程師也該知道它?

新章 突入!終於進入到期待已久的第二章 Design System 啦! 那在講 Design System 之前想要先提到一個觀念:「前期規劃 > 實作...

技術 如何提高程式碼的可測試性 (Testability)

眾所皆知,寫單元測試有非常多好處,但有些主管會問,為什麼寫測試會讓工程師額外花這麼多時間?除了因為缺乏單元測試技術知識外,根本原因是產品程式碼的可測試性太低,導...

鐵人賽 Software Development DAY 3
Hey! Go Design Patterns 系列 第 3

技術 DAY 3:Read-Write-Lock Pattern,三人成虎,一人打虎!

2023/04/05 更新: 為了避免本文章散落在不同網站,之後統一由部落格更新,再麻煩從部落格查看~ 什麼是 Read-Write-Lock Patter...

技術 Day41. 備忘錄模式

本文同步更新於blog Memento Pattern 透過對象外的存檔,讓對象能夠載入之前的狀態。 備忘錄模式會將類別分成三類:分別是原始類別 (Ori...

技術 Day49. 橋接模式

本文同步更新於blog Bridge Pattern 將抽象部分與實現部分分離,使它們都可以獨立地變化。 橋接模式會將類別分為兩類:分別是抽象類別 (Ab...

技術 Day37. 原型模式

本文同步更新於blog Prototype Pattern 當創建實例的過程很昂貴或複雜時,透過拷貝這些原型來建立新的實例。 原型模式中會將類別分為兩類:...

鐵人賽 Software Development DAY 17

技術 [Day17] 组合模式 | Composite Pattern

本文同步分享於個人blog 定義 物件以樹狀結構組合,做為表現出整體-部分的階層關係。 Composite Pattern使得使用者對單個物件和組合物...

鐵人賽 Software Development DAY 6

技術 Day 06 - 指令系統 - Unlight 的指令處理(一)

在上一篇我們了解指令是如何從封裝後客戶端發送到伺服器,我們依舊不清楚 Unlight 是如何將指令的內容轉換成可以被程式執行的動作。因此我們還需要了解 Unli...

鐵人賽 Software Development DAY 5

技術 Day 05 - 指令系統 - Unlight 指令結構分析

在我們能跟伺服器溝通後,就需要來定義伺服器跟客戶端如何發送跟接收對方所傳遞的資料。以 HTTP 協定來說就是一種溝通的方式,伺服器跟瀏覽器都已預先定義好的格式發...

鐵人賽 Software Development DAY 13
Hey! Go Design Patterns 系列 第 13

技術 DAY 13:UML Class diagrams,在抽象世界的具現化寶石

2023/04/05 更新: 為了避免本文章散落在不同網站,之後統一由部落格更新,再麻煩從部落格查看~ 在 DAY 1 ~ DAY 12 已經介紹了我認知常...

鐵人賽 Software Development DAY 4

技術 Day4. 裡氏替換原則

本文同步更新於blog Liskov Substitution Principle (LSP) Subtypes must be substitutable...

鐵人賽 Software Development DAY 9

技術 Day9. 範例:運輸系統(簡單工廠模式)

本文同步更新於blog 情境:運輸系統,用來取得當前機型名稱等資訊 <?php namespace App\FactoryPattern\Tr...

鐵人賽 Software Development DAY 23

技術 [Day23] 命令模式 | Command Pattern

文同步分享於個人blog 定義 The Command Pattern encapsulates a request as an object, the...

技術 常見的 Java Interface 錯誤用法

在 Java 專案中,應該不少人看過或寫過只有一個實作(implementation)的介面 (interface),並且以 interface-impl 的風...

鐵人賽 Modern Web DAY 8

技術 Day 08 - Design System x 實作 — Color System

今天是這系列第一次碰 Code,要來介紹三種 Color System 在專案中實作的方式,但實現方式絕對不只這三種,這邊只是提供個參考或概念給大家! 這三種...

鐵人賽 Software Development DAY 29

技術 [Day29] 策略模式 | Strategy Pattern

文同步分享於個人blog 定義 定義一系列演算法,並將其封裝起來,使他們可以相互替換,演算法的變換不影響使用。 可以把策略想做成多種選項,依照適合的情...

技術 Day43. 蠅量模式

本文同步更新於blog Flyweight Pattern 又稱為享元模式,於相似物件中共享儘可能多的資訊, 進而減少記憶體使用量。 蠅量模式會將類別分為...

技術 Day36. 範例:快取代理(代理模式)

本文同步更新於blog 情境:以下是某搜尋功能 客戶端程式碼 <?php namespace App\ProxyPattern\Cache;...

技術 [PoEAA] Domain Logic Pattern - Service Layer

本篇同步發布於個人Blog: [PoEAA] Domain Logic Pattern - Service Layer 1. What is Service L...

鐵人賽 Software Development DAY 25

技術 Day - 25. 實作練習 - 連線池

到目前為止我們已經能讓遊戲的操作跟伺服器連結起來,可以透過伺服器去管理一些行為的操作。不過要讓其他玩家能夠出現在地圖上,我們就必須調整現階段的程式碼讓伺服器能夠...

鐵人賽 Software Development DAY 6

技術 Day6. 依賴反轉原則

本文同步更新於blog Dependency Inversion Principle (DIP) High-level modules should not...

技術 Android Singleton 單例模式應用01

目的:確保一個類別只會產生一個物件 廢話不多說馬上來看Singleton怎麼實作這個寫法在Android Memory Leak及衍伸問題01有提到我打算把每個...

鐵人賽 Software Development DAY 19

技術 [Day19] 外觀模式 | Facade Pattern

文同步分享於個人blog 定義 為子系統中的一組接口提供一個統一的高層接口,使得子系統更容易使用。 簡單來說,就是提供一個接口給客戶端使用,接口內包含...

技術 Day46. 範例:摩斯電碼 (解譯器模式)

本文同步更新於blog 情境:讓我們試著作一個摩斯電碼機,它會將一般句子轉成摩斯電碼的表示 首先是語境類別 (Context) <?php...