iT邦幫忙

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

技術 Day20. 工廠方法模式

本文同步更新於blog Factory Method Pattern 簡單工廠的延伸,不再提供統一的工廠類來建立所有物件,而是將Factory類別抽象化,針...

鐵人賽 自我挑戰組 DAY 1

技術 DAY 1: 一起來讀設計模式

前言 —— 自介&參賽原因 大家好,我是哈伯,是個很菜的後端工程師。我的出身是數學系,在就學的時候跟寫程式沒什麼緣,直到出來找工作才硬把 coding 練起來。...

技術 設計模式:設計模式的基本原則

為什麼需要設計模式?不是只要會用介面、抽象、類別就可以寫程式了嗎?在寫程式的初期我也是抱持這種想法,隨著工作時間的積累,寫出的程式已經比當初一頁式寫滿二、三千行...

鐵人賽 Software Development DAY 19

技術 Day19. 範例:才藝表演(轉接頭模式)

本文同步發佈於blog 情境:以下是某才藝表演 <?php namespace App\AdapterPattern\TalentShow;...

鐵人賽 Software Development DAY 28

技術 【PHP 設計模式大頭菜】狀態模式 State Pattern

狀態模式 State Pattern 狀態模式,讓物件的狀態改變時,一同改變物件的行為模式,就像是大頭菜(Turnips)這個物件,有沒有壞掉只是一個狀態(S...

鐵人賽 自我挑戰組 DAY 3

技術 DAY10: Strategy 模式1

今天要討論的是 Strategy 模式。這個模式會分做兩篇。 在今天這一篇,我首先先提出一個案例。遇到需求時,我們有什麼可能的解決方式?最後,我們在引入策略模式...

鐵人賽 Software Development DAY 17

技術 Day17. 範例:影片製作大師(樣板方法模式)

本文同步更新於blog 情境:以下是某攝影棚的影片製作方式 <?php namespace App\TemplateMethodPattern\...

鐵人賽 Software Development DAY 14

技術 Day 14:Mediator模式

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

技術 7+1 Sass 設計模式 DAY42

7+1 Sass 設計模式: https://gist.github.com/rveitch/84cea9650092119527bc 這裡可以看到它 創建了一...

鐵人賽 Software Development DAY 24

技術 【PHP 設計模式大頭菜】備忘錄模式 Memento Pattern

備忘錄模式 Memento Pattern 備忘錄模式,在不破壞封裝物件的前提之下,提供物件一個「皇后殺手 第三爆彈:敗者成塵」的能力,物件在極度絕望的狀態下...

鐵人賽 Software Development DAY 23

技術 【PHP 設計模式大頭菜】中介者模式 Mediator Pattern

中介者模式 Mediator Pattern 中介者模式,在兩個不同的封裝物件之間,作為中間進行交互的模式,可以減少物件之間的依賴關係,並且降低耦合性問題,舉...

鐵人賽 Software Development DAY 23

技術 Day23. 範例:自助餐餐廳 (外觀模式)

本文同步更新於blog 情境:以下是某自助餐餐廳的情況 自助式霜淇淋機 <?php namespace App\FacadePattern\...

鐵人賽 Software Development DAY 14

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

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

鐵人賽 Software Development DAY 29

技術 Day29. 範例:運輸系統 (抽象工廠模式)

本文同步更新於blog 前情提要:鐵路運輸系統,參考範例:運輸系統(工廠方法模式) <?php namespace App\FactoryPa...

技術 BEM 基礎介紹 DAY41

BEMB: Block(區塊)E: Element(元素) __ 雙下底線M: Modifire(修飾符號) -- 雙中線 官網:http://getbem.c...

鐵人賽 Software Development DAY 28

技術 Day28. 抽象工廠模式

本文同步更新於blog Abstract Factory Pattern 提供一個接口,用於創建相關或依賴對象的家族,而不需要明確指定具體類。即產品增加產品...

鐵人賽 自我挑戰組 DAY 3

技術 DAY17: Observer 模式

這篇我們介紹 observer 模式。本篇會涵蓋: 簡介 observer 模式 案例:電子商務的新需求 Observer 模式關鍵特徵 與其他模式的合用...

鐵人賽 自我挑戰組 DAY 3

技術 DAY13: Bridge 模式2

Bridge 模式定義 GoF 是如此定義的: 將抽象與實作解耦合,使它們都可以獨立地變化。 要注意到,這裡的抽象和實作。必須對它們有正確的認知,才不會搞不...

鐵人賽 Software Development DAY 8

技術 Day 8:Singleton模式

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

鐵人賽 Software Development DAY 7

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

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

鐵人賽 Software Development DAY 11

技術 【PHP 設計模式大頭菜】組合模式 Composite Pattern

組合模式 Composite Pattern 組合模式,一種將物件一個一個處理,並且最後組合起來的模式,可以想像剛買到大頭菜時的夢想,經過每次漲跌所帶來的希望...

鐵人賽 Software Development DAY 17

技術 【PHP 設計模式大頭菜】享元模式 Flyweight Pattern

享元模式 Flyweight Pattern 享元模式,在定義上來說是共享物件,將相似的物件集中整理,減少記憶體上的使用,舉例來說每座島的大頭菜鈴錢價格都不同...

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

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

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

鐵人賽 自我挑戰組 DAY 3

技術 DAY21: Object Pool 模式

本篇將介紹何謂 object pool 模式,提及的案例是本書作者實際遇到的專案問題。 直接進入案例 這一章 (Chapter 22) 有一些篇幅放在除了實踐此...

鐵人賽 Software Development DAY 19

技術 Day 19:Bridge模式(一)

GoF定義將抽象與實作分離,讓他們之間的變化獨立 在這次的範例中,會以怎麼讓三種形狀的物件擁有染上相對應顏色的程式作為例子。在這邊我們將渲染顏色的功能抽象化...

鐵人賽 Modern Web DAY 21

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

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

鐵人賽 自我挑戰組 DAY 3

技術 DAY19: 討論工廠模式

今天我們會再更近一步討論工廠模式,討論為何工廠物件能夠幫助我們簡化程式碼,以及了解工廠物件的一些原則與背後的意義。 何謂工廠? 首先,我們先來定義「工廠」的含義...

鐵人賽 Software Development DAY 11

技術 Day 11:State模式(一)

狀態模式(State),在GoF 中的解釋是:「讓一個物件的行為隨著內部狀態的改變而變化,而該物件也像是換了類別一樣。」 以流離之歌這款遊戲來說,在操作上就有以...

鐵人賽 自我挑戰組 DAY 3

技術 DAY14: Abstract Factory 模式

今天我們介紹 abstract factory 模式。本篇包括: 簡介此模式 舉例說明 此模式的關鍵特徵描述 簡單來說:abstract factory...

鐵人賽 自我挑戰組 DAY 8

技術 【從工程師升級成為資深工程師的那檔事Day 8】淺談設計模式

前面的篇章中分享了SOLID五大原則,我們可以在分析、設計時不斷的反思是否有遵循這些原則,不至於到了最後才發現,我們做出一個結構松散的架構。也分享了一些OOA、...