iT邦幫忙

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

技術 【PHP 設計模式大頭菜】靜態工廠 Static Factory

靜態工廠 Static Factory 靜態工廠,顧名思義就是希望這整個工廠都是屬於靜態屬性的,無論到哪裡都以靜態方法來使用這個工廠,就像是在星期日的早上時,...

鐵人賽 自我挑戰組 DAY 15

技術 [深入淺出設計模式] Ch4 The Factory Pattern (5) - 【抽象工廠模式】Abstract Factory Pattern 與工廠方法模式差在哪裡?

抽象工廠模式 Abstract Factory Pattern 跟工廠方法模式一樣,都會把製造方法放在工廠中,跟客戶端分離。 每個工廠會對同一個食材介面...

鐵人賽 Software Development DAY 15

技術 【PHP 設計模式大頭菜】外觀模式 Facade Pattern

外觀模式 Facade Pattern 外觀模式,或者稱作門面模式,一種把複雜邏輯給包裝起來的一種模式,舉個例子來說,今天已經不單只是計算大頭菜了,而是你有個...

鐵人賽 Software Development DAY 10

技術 Day10. 策略模式

本文同步更新於blog Strategy Pattern 定義算法族,分別封裝,讓彼此之間能互相替換,使算法變化獨立。 策略模式只會將類別分為一類,即算法...

鐵人賽 自我挑戰組 DAY 3

技術 DAY7: Adapter 模式

上一篇,我介紹了 Facade 模式,今天我們繼續介紹另一個設計模式 —— Adapter 模式。 Adapter 模式想解決的問題 先給出一個情境 假設客戶給...

技術 Day55. 訪問者模式

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

技術 Day51. 職責鏈模式

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

鐵人賽 自我挑戰組 DAY 3

技術 DAY6: Facade 模式

今天我們開始介紹本書第一個提到的設計模式:Facade 模式。我會介紹什麼是 Facade 模式、它的一些關鍵特徵和它帶來的好處。Let's dive in!...

鐵人賽 Modern Web DAY 21

技術 菜鳥初探設計模式-D21

為什麼要了解設計模式 當我說"沉默螺旋"(spiral of silence),你知道我在說什麼嗎? 你如果知道,我就不用解釋繼續講下去,甚...

技術 Day33. 迭代器模式

本文同步更新於blog Iterator Pattern 提供一種方法順序訪問一個聚合對象中的各個元素, 而又不暴露其內部的表示。 迭代器模式會將類別分為...

鐵人賽 Software Development DAY 29

技術 【PHP 設計模式大頭菜】策略模式 Strategy Pattern

策略模式 Strategy Pattern 策略模式,可以讓物件在運作時更改其行為或算法,你可以透過切換策略物件來改變計有的功能,你需要實作一個介面來代表這個...

鐵人賽 Software Development DAY 30

技術 【PHP 設計模式大頭菜】模板方法 Template Method

模板方法 Template Method 模板方法,是一種如果這包水泥我有、你也有,就連喬瑟夫都有,那我們就應該把這八百包水泥抽離出來的設計模式,是設計模式中...

鐵人賽 Software Development DAY 14

技術 Day14. 命令模式

本文同步更新於blog Command Pattern 將請求封裝成對象,以便使用不同的請求來進行參數化。 命令模式也支持隊列、日誌及可撤銷的操作。 命令...

鐵人賽 Software Development DAY 25

技術 Day25. 範例:會員制(狀態模式)

本文同步更新於blog 情境:平台有三種身份,分別是訪客 (guest)、會員 (member)及付費會員(premium) 訪客藉由註冊 (regi...

鐵人賽 Software Development DAY 25

技術 【PHP 設計模式大頭菜】空物件模式 Null Object Pattern

空物件模式 Null Object Pattern 空物件模式,一種以非 Null 的空白物件去取代 Null 的模式,其空白物件並不是拿來比對資料是否為 N...

鐵人賽 Software Development DAY 14

技術 【PHP 設計模式大頭菜】依賴注入 Dependency Injection

依賴注入 Dependency Injection 依賴注入模式,是控制反轉(Inversion of Control,縮寫為IoC)的一種實作方式,主要是將...

鐵人賽 自我挑戰組 DAY 3

技術 DAY8: 用不同觀點看物件與封裝

今天我們將再次審視物件導向設計,並且帶入本書作者的新觀點。作者自己提到,接下來提到的看法可能並不會有太多的原創性,但是 稱之為新觀點,是指對於大多數開發人員而...

鐵人賽 自我挑戰組 DAY 18

技術 [Day18] Design Pattern - Proxy代理模式

前言 今天上班的時候師父剛好教我設定公司電腦的proxy😶‍🌫️結果很巧的今天就輪到要來寫這篇! 定義 Proxy is a structural d...

鐵人賽 Software Development DAY 10

技術 【PHP 設計模式大頭菜】橋接模式 Bridge Pattern

橋接模式 Bridge Pattern 橋接模式,將實作體系與抽象體系分離開來,讓兩者能各自更動各自演進,就有點像是大頭菜有分健康的大頭菜及壞掉的大頭菜,你的...

鐵人賽 Software Development DAY 12

技術 【PHP 設計模式大頭菜】資料對應 Data Mapper

資料對應 Data Mapper 資料對應,這是一種常用於處理物件導向與資料庫資料的模式,與 Repository 不同,Data Mapper 主要處理的事...

鐵人賽 Software Development DAY 22

技術 【PHP 設計模式大頭菜】疊代器模式 Iterator Pattern

疊代器模式 Iterator Pattern 疊代器模式,提供一種方法來簡單控制一個集合物件,這段過程並不會暴露該物件的來源或修改它,就有點像是你的背包(Ba...

鐵人賽 Software Development DAY 20

技術 【PHP 設計模式大頭菜】責任鏈模式 Chain of Responsibilities

責任鏈模式 Chain of Responsibilities 責任鏈模式,有一系列的命令物件及處理物件,常見於需要被連續處理的地方上,舉例來說,假設今天收購...

鐵人賽 Software Development DAY 27

技術 Day27. 範例:Line群組通知(觀察者模式)

本文同步更新於blog 情境:讓我們用Line群組,來實作觀察者模式 首先實作抽象的觀察者類別 (Observer) 其中會有接收到主題類別通知時...

鐵人賽 Software Development DAY 21

技術 【PHP 設計模式大頭菜】命令模式 Command Pattern

命令模式 Command Pattern 命令模式,是一種將行為封裝起來裹上美好糖衣的一種模式,並將接收與執行分離出來,就有點像是把大頭菜買賣這件事,如果把買...

鐵人賽 Software Development DAY 14

技術 Day 14:Mediator模式

仲介者模式(Mediator)在GoF中的說明是:「定義一個介面用來包裝一群物件的互動行為。仲介者藉由移除物件間的引用,來減少它們之間的耦合度,並且能讓你改變...

鐵人賽 自我挑戰組 DAY 16

技術 [Day16] Design Pattern - Facade 外觀模式

定義 Facade is a structural design pattern that provides a simplified interface...

鐵人賽 Software Development DAY 16

技術 【PHP 設計模式大頭菜】流暢介面 Fluent Interface

流暢介面 Fluent Interface 流暢介面,常用於撰寫如同文章般容易閱讀的程式碼,如果以大頭菜來講,那麼在建立大頭菜的同時,希望可以順便賦予其鈴錢價...

鐵人賽 Software Development DAY 15

技術 Day15. 範例:機器人廚師(命令模式)

本文同步更新於blog 情境:這是一間牛排館,會根據客戶的訂單出菜 <?php namespace App\CommandPattern\Wes...

鐵人賽 Software Development DAY 26

技術 Day26. 觀察者模式

本文同步更新於blog Observer Pattern 在對象之間定義一對多的依賴。 當一個對象改變狀態,依賴它的對象都會收到通知,並自動更新。 亦被稱作...

鐵人賽 Modern Web DAY 2

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

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