Jasper Blog

千里之行,始於足下

Agile Principles Patterns Practices in C# (11)

SOLID - 依賴反轉原則

Dependency Inversion Principle 高層模組不應該依賴於(相依於)低層模組。二者都應該依賴於抽象 抽象不應該依賴於細節,細節應該依賴於抽象。 一個設計良好的物件導向程式,相對

Agile Principles Patterns Practices in C# (10)

SOLID - 里氏替換原則

LiSkov Principle 子型態(Subtype)必須能夠替換掉它們的基底型態(base type) 當一個函式f(),他的參數為指向某個基底類別為B的參考,而假設B有衍生類

Agile Principles Patterns Practices in C# (9)

SOLID - 開放封閉原則

Open Closed Principle 軟體實體(類別、模組、函式等等)應該是可擴展的,但不可修改。 1. OCP概述 對於擴展式開放的(open for extension)。 這意味著模組

Agile Principles Patterns Practices in C# (8)

SOLID - 單一職責原則

Singel Responsibility Principle 單一職責原則 一個類別應該只有一個發生變化的原因 1. 範例說明 Rectangle 具有兩個方法,分別負擔以下兩個工作 draw(): 把舉行繪製在螢幕上 area(): 計算矩形的面積 有兩個

Agile Principles Patterns Practices in C# (7)

敏捷設計

Agile Design 什麼是敏捷設計 實際能滿足工程設標準的軟體說明文件,就只有原始程式碼清單 1. 設計臭味 Code Smell 設計臭味 僵化性 (Rigidity) 脆弱性 (Fragility) 頑固性 (Immobility) 黏滯性 (Viscosity) 不必要的複雜