之前大學時期曾經短暫的在飲料店打過工,想說體驗一下不同的工作,那時候也是我體重的巔峰,因為每天都可以喝飲料,只要在店裡,基本上所有的飲料都可以喝,而且想要加什麼...
今天介紹的是工廠模式,因為會跟明天的 Abstract Factory 有點關係,所以先來說一下,這個工廠模式,相對我們前幾天談到的其他模式都還要單純很多,也很...
今天要來介紹Prototype模式,簡單來說就是「複製」,在第19天時我們有提到說建立物件池去保存昂貴物件,那麼當我現在已經財富自由了,不用去管制購買機器的數量...
延續昨天的例子,我們在製作飲料的過程中,其實整體步驟都是蠻相像的,不外乎就是先煮沸水,加入茶葉煮成茶,加入冰塊以及配料,最後封膜打包給客人,這一系列的流程很類似...
再延續昨天的例子,今天的我終於下定決心要減肥了,我規定我一天只能喝一杯奶茶,所以如果去買奶茶的話,店員只會給我一杯,如果再要第二杯,店員只會把剛剛做好的第一杯再...
我們在 DAY6 有用麥當勞的例子來介紹 Facade模式,今天我們再用麥當勞來舉例。假設今天到了麥當勞櫃台,我們不點套餐了,就是單點(雖然比較貴XD),而店員...
昨天提到,可以用Singleton模式,讓實體永遠只會建立一次。但如果現在是在多執行序的環境下,會發生什麼事呢? 第一個執行緒檢查實體是否存在。因為實體不存在...
今天的設計模式,讓我們來了解屬於結構型模式的 Facade,中文翻為門面模式、表象模式或外觀模式。Facade 這個詞源自法文 Façade,意思是建築物的正面...
開始看 Design Patterns/Architectural Patterns 之前,我們先來建立一些基本知識。 SOLID 原則 物件導向的世界中,有所...
什麼是Factory Method? Factory Method 工廠方法是一種創建型設計模式:Superclass 先粗略定義 Object 的創建方法,但...
年輕的工程師很不喜歡寫文件與做簡報。 其實不是不喜歡,而是沒有大量資訊可以歸納統整的人,是寫不出優秀的文件與簡報,當然就自然而然討厭它。 寫文件(簡報)就像寫...
今天要介紹的 Pattern 是 Template Pattern。個人覺得在 Design Patterns 中,Template Pattern 大概是數一...
Mediator 介紹 Mediator Pattern 是一個非常貼近現實生活應用的一個設計模式,小從傳訊息跟朋友聊天,大到聯合國協調國際衝突,只要有中間人、...
在功能穩定後,你對程式碼還有要求嗎? 「沒有最好的程式,只有更好的程式。」在完成功能後 Code Review 是非常重要的事情;不只看自己的程式碼,也要多...
今天要介紹的 pattern 是 Strategy Pattern。跟昨天的 Template Pattern 一樣,個人覺得在 design patterns...
[Design Pattern] Flyweight 輕量模式 今天要介紹的 design pattern 是 Flyweight 輕量模式,又稱作享元模式—沒...
[Design Pattern] Prototype 原型模式 在很多編輯軟體中都有複製這個功能,例如 Google Slides 的複製投影片,或是 PicC...
這是一個介紹設計模式 Design Patterns 與架構模式 Architectural Patterns 的系列文章。 什麼?又是 Design Patt...
有一天艾倫正在開發「超級約翰」這款遊戲,這是一個橫向捲軸遊戲,主角可以透過跳躍來踩死敵人,關卡的目標就是一路過關斬將並將最後的旗子升起來。艾倫正在開發最重要的跳...
單例模式 Singleton Pattern 單例模式,整個應用程式只會有一個實體,這個實體不會重複建立,就有點像是整座島上只有一個曹賣,這個曹賣在你這座島的...
今天要和大家介紹 Observer Pattern,又稱作 Publish-Subscribe Pattern。簡單來說,Observer Pattern 就是...
還記得小時後唸書的座號嗎?老師點名的時候通常會從一號點到最後一號,不會故意從最後一號開始,也不會跳著點。但是有一種情況例外:就是那個座號的學生今天剛好請假或是轉...
PicCollage 的員工大概可以分成兩類:Regular Memnber(正職)與 Intern(實習生)。 每個員工會輪流當 weekie(週值日生),負...
禮拜四的凌晨,台北的天空霧濛濛的,彷彿預告著明天的壞天氣還有等不到週末的壞心情。 不過珍妮可不在意這些,今天是她重要的日子。 珍妮要灑錢打造屬於自己的一輛車,順...
本系列文章已出版實體書籍:「你的地圖會說話?WebGIS 與 JavaScript 的情感交織」(博碩文化)WebGIS啟蒙首選✖五家地圖API✖近百個程式範...
在不違反封裝性的前提下,捕捉物件的內部狀態並存在外面,以便日後回復至此一狀態。 (取自 物件導向設計模式−可再利用物件導向軟體之要素) 一個玩遊戲打魔王的回...
*設計模式是:為了解決特定環境經常發生的問題而設計的概括性解決方案。 非程式庫或範本,是一般性的問題處理結構。 讓物件間具備鬆耦合關係,改程式不用擔心牽一髮動...
今天要介紹的是 Intepreter,它是一種 Behavior Pattern。這個 Pattern 的目的是要用來解釋已經被定義的文法,將一段敘述轉換成表示...
本文同步更新於blog 情境:目前提供旅遊行程的方式 <?php namespace App\BuilderPattern\Vacation;...
前言 大家好,我是Bear,目前是名PHP工程師。寫文章的當下,著迷於Clean Code、Design Pattern跟Testing。 最近在研究自己寫co...