在前文物件導向的特性中,提到物件導向設計本身具有封裝、繼承、多型、抽象這些特性。 知道物件導向的特性,就可以寫出具備閱讀性、維謢性、擴充性的程式碼?答案是肯定的...
開始看 Design Patterns/Architectural Patterns 之前,我們先來建立一些基本知識。 SOLID 原則 物件導向的世界中,有所...
今天要談的是物件導向的幾個基本性質以及衍生出來的特性。 筆者相信,即便是寫了一年以上的程式,不懂物件導向的人也還是很多,光從學校的教科書來看,似乎也不是那麼容易...
大家應該有發現我們一天一天往進階的內容邁進,很快我們就要開始談高大上的架構問題了。但是在開始討論如何建構一個好的 Android app 架構之前,想先跟大家分...
前言 為了感謝部落格一直以來都有人在閱讀,讓我一直有經營下去的動力。所以想寫一個系列 學習 SOLID 原則 2 年後的心得文章。這心得文章包含自己使用 SOL...
昨天有提到物件模型可以幫助我們分解需求、設計系統、實作系統。於1980年代在大型系統設計中有很多研究提出很多設計原則,Robert C. Martin整理了很多...
介紹 何謂原則(Principle) A principle is a concept or value that is a guide for behavi...
Why SOLID? 在前一篇文章中介紹 SOLID 對一個工程師的影響,這裡再稍微補充一下為什麼軟體開發會需要 SOLID 原則? 軟體複雜的本質 專案經常會...
前一天我們有提到SOLID,我們今天就來談談為啥我們需要了解SOLID? 他能幫助我們甚麼?SOLID是一種設計原則,主要是透過觀念讓團隊降機Code Revi...
Airflow DAG 是啥? DAG 定義 Airflow 的核心之一,一定是 DAG (Directed Acyclic Graph,有向無環圖)。如果說其...
在上一篇文章當中,我們提到「單一功能原則」,指每一個類別只會因為一種原因被修改。那麼,如果真的遇到需求變動、需要修改的時候,我們該如何「修改」呢? SOLID...
最近剛好有在看 Clean Architecture 這本書,裡面有提到大名鼎鼎的 SOLID 原則,雖然還沒有完全看完,但今天可以先來聊聊這五大原則。 Wha...
在上一篇文章當中我們談到開放封閉原則,這裡我們要來談談依賴反轉原則 Dependency inversion principle。先不談定義,先來看範例。 延續...
最後,我們來到了 SOLID 當中的介面隔離原則。這裡我們先舉先前提到過的 BaseballPlayer and TennisPlayer 的例子。 由於兩個類...
關於物件導向程式設計的五個設計原則,大家可能會依據不同的順序來解釋,不過我想「單一功能原則」一定會被擺在首位。 這個原則由 "Uncle Bob&qu...
什麼是里氏替換原則 子型別必須遵從父型別的行為進行設計 解釋只有一句話這麼簡單。 子型別要完全實作父型別的方法 子型別要能完全替代父型別,且不能出現錯誤或...
在前面的五篇文章當中,我們提到了 SOLID 設計原則,分別為 單一功能原則 Single Responsibility Principle 開放封閉原則 O...
今天來談談 SOLID 當中的里氏替換原則,同樣的先來看一下例子。 延續先前的例子,公司持續拓展,滿足更多不同使用者的需求。現在公司決定,讓使用者可以在建立實例...
Dependency inversion principle 如同我們之前提到的,依賴於抽象而非實體,這是我們應該盡力去遵守的規範,依賴於抽象的系統,相對於依賴...
什麼是開閉原則 軟體實體應該對擴展開放,對修改關閉 開閉原則的解釋就是這麼簡單。 以現實中遇到實現開閉原則的例子為例: Chrome 和 VS Code都是...
過去一週我們提到了物件導向程式設計的重要概念,像是類別、抽象類別、介面,以及四大特徵:抽象、封裝、繼承、多型。 這裡讓我嘗試用一段話來整理這些內容之間的關係:...
使用介面來隔離依賴是非常有用的,一種常見的設計模式 proxy pattern 就是以此概念設計的,那使用介面來隔離到底帶給我們什麼好處呢? 在物件導向的設計中...
什麼是介面隔離原則 一個類別不應該被強迫實作一個它不需要的方法 意思就是說,一個類別不應該去實作它不需要去執行的方法。感覺有點廢話,又把引言說了一次,直接來...
原文連結:The S.O.L.I.D Principles in Pictures本文所刊登的圖片,皆屬原作者 Ugonna Thelma 所有。 這篇比...
模組應該要對擴展開放,對修改封閉,這是什麼意思? 看看上面的架構圖,在開放封閉原則之中,了解層級間的依賴非常重要,圖中的同心圓,應該由外層依賴內層,而不是內層依...
文章同步於blog 介紹 今天要介紹的是介面隔離原則(ISP, Interface Segregation Principle) ISP的原則就是,不該強迫使用...
消除你程式碼的臭味 Day 10- 介面最小化:只暴露必要的東西 介面越小,被誤用的空間越小,維護成本越低。公開的每個函式,都是欠下的一筆債 介面是你經過深...
昨天,我們對於物件導向設計有初步了解後,今天,我們接續來看看物件設計導向的原則。 物件導向設計原則 說到物件導向設計原則,就不得不提 SOLID 以及 DRY...
前言 接下來要介紹SOLID的原則,會一一介紹今天先從SRP開始 介紹 單一職責原則(SRP, Single Responsibility Principle)...
I'm only here tonight because of you. You are the reason I am. You are all my r...