前面兩天有提到 Facade 和 Adapter 兩種設計模式,裡面的範例程式碼內容基本上是環繞在三個物件導向中的基礎概念:物件、封裝、抽象類別。今天的主要目的...
第二個原則 接續昨天的問題,我們要來看如何更彈性的設計出這個架構!那要怎麼應用呢?書本提到了第二個原則: 針對"介面"而非"實作...
軟體開發的不變真理─改變 設計程式時,當我們收到需求之後,要做出來很容易,要做得好的上下限卻差很多。如果你能確保這軟體寫完用一次就不需要了,未來不支持更新,那你...
外接螢幕的故事 之前疫情嚴重時有居家工作一段時間,而公司的筆電是14吋,在家的話想當然就是要爽爽外接大螢幕嘛(竊笑)!於是我就跑去賣場買了一台27吋的螢幕,配合...
今晚…我想來點…麥當勞 大家應該都有去麥當勞點餐過的經驗,如果今天我想來個二號餐(雙層牛肉吉士堡),不可能走進去跟做薯條的人說我要一份薯條,再去漢堡區說我要一份...
前言 萬事起頭難,這兩天就先從最初的設計模式入門開始,開始感受設計模式的用處,並掌握設計模式的幾項大原則吧! 物件導向 Design Pattern充分使用OO...
在一些微服務的規劃中,微服務類似將單體系統切割成多個高內聚的獨立模組,且服務與服務間鬆耦合。 假設在單體系統,改了某個業務邏輯與相關的程式,卻於另外一個功能模...
前面幾天提到物件導向範型以及基礎的UML圖,相信大家應該對物件導向有基本的認識了,所以話說回來,為什麼我們要學習設計模式(Design Pattern)呢? 來...
前言 去年的鐵人賽挑戰leetcode連續刷題一個月(Leetcode刷題筆記),熟悉C++的基本語法與邏輯鍛鍊,今年則是希望可以趁這個機會來好好閱讀軟體設計的...
UML是一種建立程式模型的圖形語言,可以想像成是帶有語意的圖形記號,圖可以分成兩大類,一種是表達結構用的圖,而另一種是表達行為用的圖形,所有分類如下圖所示。...
讓我們延續上一篇的例子~ 學生不僅僅是學生 假設現在的學生不僅僅是一般大學生了,還包含研究生,現在要他們交作業,但不同類型的學生要交的作業不同,做的事情也不一樣...
範型定義 範型(paradigm),即為典型範例 - 標準結構化程式設計比較異同的方式,可以想像成一種程式設計風格。常見的範型還有:函數式程式設計、指令式程式設...
在上一節,透過描述我們看到controller class在被產生instance過程中,其中IActionInvokerFactory 會被Resolve成...
這是第一次參加IT鐵人賽,也是我剛入軟體業的第一年,對於物件導向以及程式架構也都還是懵懵懂懂,所以希望能夠藉由這次的參賽,讓我對於 OOP & Desi...
Backend System in Microservice Architecture: Where Does data store? At recent ye...
為什麼 CQRS - Why CQRS CQRS (Command Query Responsibility Segregation) 命令查詢職責分離模式,在...
分治法(Divide and conquer) 又稱分而治之法,是最常被使用的策略方式,原理是將一個難以直接解決的大問題,依據相同的概念分割成多個子問題,再各個...
終於來到了最後一天,希望看完前29篇文章的人能夠把所學的知識內化,當寫程式的時候有碰到什麼問題,可以先想想看有什麼方法能夠優化現階段的程式,並且減少不必要的...
今天要談到的觀察者模式也是很常見的一個模式,常出現在有兩個以上需要互相溝通的物件之間 問題 假設有個物件 A 想要獲得物件 B 的更新資訊,但實際上 A 不知道...
今天要要介紹最後一個 Behavioral Patterns,也就是Template Method,我想大多數的人看到這個名字就可以約略的猜到這個模式是用來...
當一個請求 (request) 進入系統之後,通常我們就會立即的處理它。但如果我們不想這麼直接的去處理這些請求,而是先讓這些需求排隊、依序進入,甚至做一些預先處...
2023/04/05 更新: 為了避免本文章散落在不同網站,之後統一由部落格更新,再麻煩從部落格查看~ 什麼是 Strategy Pattern? 設計相...
今天要學習的是觀察者模式,它主要的作用是設定一個訂閱機制,當被訂閱的物件有發生事件時就會去通知所有訂閱的物件,現在讓我們來認識它吧! 問題情境與解析 ...
今天開始進入到 Behavioral design patterns,這一類的模式著重於物件之間的溝通與責任分配,就讓我們接下去一起看看吧 Chain of R...
2023/04/05 更新: 為了避免本文章散落在不同網站,之後統一由部落格更新,再麻煩從部落格查看~ 什麼是 Iterator Pattern? 將不同...
今天要認識的Design Pattern我覺得比較難,但我會盡量以簡單的方法讓大家了解 Visitor Pattern是如何運作的,現在就來學習一下吧!...
在 Structural patterns 當中,最後要來談的是外觀模式。 外觀模式提供我們一個簡單方便的操作介面,其背後幫我們實現了複雜的操作。這樣的模式其實...
2023/04/05 更新: 為了避免本文章散落在不同網站,之後統一由部落格更新,再麻煩從部落格查看~ 什麼是 Command Pattern? 將建立指...
今天要學習的模式我覺得很有趣,學完以後很常拿它用來做 undo、redo 的功能,因為它的功能就是用來保存和恢復物件的狀態的,現在就來認識一下吧! 問題情...
今天要談到代理模式,其實跟昨天的裝飾器模式很類似。代理模式的目的在於,因應某些條件替換物件原本的行為。 同樣用昨天的例子,這裡有 BookPrinter 可以把...