iT邦幫忙

design pattern相關文章
共有 395 則文章
鐵人賽 Software Development DAY 19

技術 【DAY19】Object Pool模式 - 管理你的昂貴物件池

今天要介紹的是 Object Pool模式,會以工廠的機器為例。假設今天要生產晶片,需要高精密的機器才能去生產,而這台機器又非常昂貴,而且做出機器需要花的時間很...

鐵人賽 Software Development DAY 8

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

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

鐵人賽 Software Development DAY 14

技術 【DAY14】Decorator模式 - 那些年,我們一起搖的飲料(上)

之前大學時期曾經短暫的在飲料店打過工,想說體驗一下不同的工作,那時候也是我體重的巔峰,因為每天都可以喝飲料,只要在店裡,基本上所有的飲料都可以喝,而且想要加什麼...

鐵人賽 Software Development DAY 11

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

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

鐵人賽 Software Development DAY 12

技術 【DAY12】Abstract Factory模式 - 升級工廠2.0

昨天我們談到了 Factory模式,工廠可以生產實作同個介面 IShape的各種形狀。假設今天再多一個條件是「顏色」,而店家會去販售特定形狀的卡片搭配特定顏色的...

鐵人賽 Software Development DAY 21

技術 【DAY21】Prototype模式 - 無限複製的秘訣!

今天要來介紹Prototype模式,簡單來說就是「複製」,在第19天時我們有提到說建立物件池去保存昂貴物件,那麼當我現在已經財富自由了,不用去管制購買機器的數量...

鐵人賽 Software Development DAY 15

技術 【DAY15】Template模式 - 那些年,我們一起搖的飲料(下)

延續昨天的例子,我們在製作飲料的過程中,其實整體步驟都是蠻相像的,不外乎就是先煮沸水,加入茶葉煮成茶,加入冰塊以及配料,最後封膜打包給客人,這一系列的流程很類似...

鐵人賽 Software Development DAY 16

技術 【DAY16】Singleton模式 - 那些年,我們一起搖的飲料(番外篇)

再延續昨天的例子,今天的我終於下定決心要減肥了,我規定我一天只能喝一杯奶茶,所以如果去買奶茶的話,店員只會給我一杯,如果再要第二杯,店員只會把剛剛做好的第一杯再...

鐵人賽 Software Development DAY 20

技術 【DAY20】Builder模式 - 今晚...我想來點麥當勞(下)

我們在 DAY6 有用麥當勞的例子來介紹 Facade模式,今天我們再用麥當勞來舉例。假設今天到了麥當勞櫃台,我們不點套餐了,就是單點(雖然比較貴XD),而店員...

鐵人賽 Software Development DAY 17

技術 【DAY17】Double-Checked Locking模式 - 多執行序環境

昨天提到,可以用Singleton模式,讓實體永遠只會建立一次。但如果現在是在多執行序的環境下,會發生什麼事呢? 第一個執行緒檢查實體是否存在。因為實體不存在...

鐵人賽 Software Development DAY 29

技術 [Design Pattern實例] 使用單例模式實做線性分配器(2/2)

使用單例模式實做線性分配器(2/2) 延續Day28.使用單例模式實做線性分配器(1/2)的需求,我們接下來要開始實作取號的方法。 Sample Codes...

鐵人賽 Software Development DAY 21

技術 你每天在用,但是可能不知道的... (Iterator 迭代器模式)

Iterator 迭代器模式 需求描述 Amy(PO): As a 電商老闆I want 舉辦行銷活動,購物車結帳時: 書籍雜誌:會員相同類別10本以上八折...

技術 多此一舉! 不要這樣用 Java 8 Optional

Java 8 新加入了 Optional 類別,能省去繁瑣的 null check 流程,豐富的 API 也讓程式邏輯看起來更簡潔、易讀。但我卻看到了不少錯誤的...

鐵人賽 Software Development DAY 5

技術 職場第一條規則:事情不要接了傻傻做,而是要交給負責的人! (Chain of Responsibility 職責鍊模式)

Chain of Responsibility 職責鍊模式 需求描述 Amy(PO): As a 產品經理I want 多國語系介面So that 顯示使用者...

鐵人賽 Software Development DAY 23

技術 察言觀色! 敵不動,我不動! (Observer 觀察者模式)

Observer 觀察者模式 定義 定義對象之間的一對多依賴關係,當一個對象更改狀態時,會自動通知並更新其所有依賴的對象。(WIKI) UML Obse...

技術 MVC/Model 2模式、MVP模式和MVVM模式

前言 時間過得很快,距離2019鐵人挑戰賽將近一年了,在這一年間除了持續進行android程式設計的開發之外,也接觸了不少新東西!例如:重構、實作模式、測試驅動...

鐵人賽 Software Development DAY 7

技術 橋來橋去! 以需求大化小,小化無(抽象)為目標! (Bridge 橋接模式)

Bridge 橋接模式 需求描述 Amy(PO): As a 建立訂單的秘書I want 可以在同一介面上依據各供應商、產品和是否急件列印不同格式的訂單So...

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

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

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

鐵人賽 Software Development DAY 3

技術 謀略設計模式! 學習首重策略! (Strategy 策略模式)

Strategy 策略模式 需求描述 Amy(PO): As a 資料分析者I want 使用者在執行任一系統功能時,系統可以記錄使用記錄在文字檔So tha...

鐵人賽 Software Development DAY 4

技術 雞同鴨講也可以通! (Interpreter 解譯器模式)

Interpreter 解譯器模式 Interpreter的中文也被稱為翻譯者模式或解釋器模式。 需求描述 Amy(PO): As a 資料分析者I wa...

鐵人賽 Software Development DAY 8

技術 江湖走跳,轉接頭很重要! (Adapter 適配器模式)

Adapter 適配器模式 需求描述 Amy(PO): As a 資料分析者I want 系統可以介接XX店家二代卡機傳回來的EDI並整理資料後存放在資料庫S...

鐵人賽 Software Development DAY 26

技術 [Design Pattern實例] 在ASP.NET Core利用建造者模式來製造View Model

在ASP.NET Core利用建造者模式來製造View Model Scenario 專案中需要在MVC同一個VIEW上動態依照後端提供的每種產品規格(View...

技術 IOC(控制反轉) , DI(依賴注入) 深入淺出~~

IOC是一個oop重要的程式設計思想。 此文帶著大家初探 IOC(控制反轉) , DI(依賴注入) ~~ 案例解釋: 小明是個愛乾淨的人,但他工作時常加班導致...

鐵人賽 Software Development DAY 9

技術 DBA說換資料庫的帳號密碼,結果我花了一天改連線資訊$#&@#! (Factory 工廠模式)

Factory 工廠模式 需求描述 Lily(Team member): As a 開發人員I want 建立一個Interface來讓開發人員建立各資料庫連...

鐵人賽 Software Development DAY 10

技術 收到一筆要建立複製人軍隊的訂單怎麼辦? (Prototype 原型模式)

Prototype 原型模式 需求描述 Amy(PO): As a 系統使用者I want 降低查詢線上交易報表的回應時間So that 提高作業效率 思考...

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

技術 DAY 7:Fan-Out Fan-In Pattern,看吧世界!這就是多人解決的力量!

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

鐵人賽 Software Development DAY 4

技術 [Day04] 開閉原則 | Open/Closed Principle

本文同步於個人部落格 今天接著介紹第二個Design Principle。那就廢話不多說直接開始吧!! 定義 Software entities li...

鐵人賽 Software Development DAY 19

技術 別讓老闆和USER再問你好了沒? 隨時更新工作狀態吧! (State 狀態模式)

State 狀態模式 需求描述 Amy(PO): As a 提需求單的使用者I want 需求單管理系統支援在某個需求的狀態改變時,記錄時間並以Email通知...

鐵人賽 Software Development DAY 3

技術 [Day03] 單一職責原則 | Single Responsibility Principle

本文同步於個人Blog 昨天我們介紹了七個Design Principle,也用簡單的例子讓大家初步認識每個Principle的作用。進而了解了若要使用Desi...

鐵人賽 自我挑戰組 DAY 17

技術 [Dot Net Core] (延伸應用) 17. 為何使用 Dot Net Core 框架 - 解耦服務於 MicroService

在一些微服務的規劃中,微服務類似將單體系統切割成多個高內聚的獨立模組,且服務與服務間鬆耦合。 假設在單體系統,改了某個業務邏輯與相關的程式,卻於另外一個功能模...