設計模式-建構可擴展/易維護的物件導向軟體
OO概念-抽象/封裝/多型/繼承
物件導向原則 1.把會變的東西封裝起來
2.多用組合,少用繼承
3.針對介面撰寫程式,而不是針對實作
4.努力為彼此互動的物件做出鬆耦合設計
5.類別應該歡迎擴展,但拒絕修改
6.要依賴抽象,不要依賴具體類別
Page 596
設計模式-建構可擴展/易維護的物件導向軟體
OO概念-抽象/封裝/多型/繼承
物件導向原則 1.把會變的東西封裝起來
2.多用組合,少用繼承
3.針對介面撰寫程式,而不是針對實作
4.努力為彼此互動的物件做出鬆耦合設計
5.類別應該歡迎擴展,但拒絕修改
6.要依賴抽象,不要依賴具體類別
Page 596
模式 | 敘述 |
裝飾器 | 包裝成物件來提供新行為 |
狀態 | 封裝成狀態行為 ,並使用委託來切換不同行為 |
迭代器 | 提供一種方式來遍歷物件集合 ,而且部會公開集合實作 |
門面 | 簡化一組類別的介面 |
策略 | 封裝可互換行為 ,並使用委託來決定該使用哪一個 |
代理 | 包裝一個物件在某個狀態改變時收到通知 |
工廠方法 | 用子類別來決定要建立哪個具體類別 |
轉接器 | 包裝一個物件 並未他提供不同的介面 |
觀察者 | 讓一群物件在某個狀態改變收到通知 |
樣板方法 | 用子類別來決定如何實作演算法步驟 |
組合 | 讓用戶端用一致的方式來對待物件集合與個別物件 |
單例 | 確保只有一個物件被做出來 |
抽象工廠 | 可讓用戶端建立一系列的物件 ,而且不需要指令它們的具體類別 |
命令 | 將請求封裝成物件 |
SOLID所包含的原則是通過引發編程者進行軟體原始碼的代碼重構進行軟體的代碼異味清掃,從而使得軟體清晰可讀以及可延伸時可以應用的指南。SOLID被典型的應用在測試驅動開發上,並且是敏捷開發以及自適應軟體開發的基本原則的重要組成部分。
SOLID 是5大原則的簡稱,分別為:
S = Single-responsibility principle (SRP) = 單一職責原則
-認為「物件應該僅具有一種單一功能」的概念
O = Open–closed principle (OCP) = 開放封閉原則
-軟體體應該是對於擴充開放的,但是對於修改封閉的
L =Liskov substitution principle (LSP) = 里氏替換原則
-程式中的物件應該是可以在不改變程式正確性的前提下被它的子類所替換的
I = Interface segregation principle (ISP) = 介面隔離原則
-多個特定客戶端介面要好於一個寬泛用途的介面
D = Dependency inversion principle (DIP) = 依賴反向原則
-依賴於抽象而不是一個實例
在 ~/.bashrc新增底下內容
# show git branch
function git_branch {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return;
echo "("${ref#refs/heads/}")";
}
PS1="${HOSTNAME}:\w\[\033[1;32m\]\$(git_branch)\[\033[0m\]$"; | |