簡單介紹 Design pattern
Factory
- 簡單工廠: if else 判斷 type 來 new 新物件
1
2
3public interface Phone {
void make();
} - 工廠方法: 針對一類產品,進行抽象化
1
2
3public interface AbstractFactory {
Iphone makePhone();
} - 抽象工廠: 可擁有不同類型產品
1
2
3
4public interface AbstractFactory {
Iphone makePhone();
NoteBook makeNoteBook();
}
Singleton
- 一個類只有一個實例,而且自行實例化並向整個系統提供這個實例
Proxy
- 為物件提供代理介面,控制其存取,不直接操作本身
Strategy
- 於不同場景,有不同算法,將演算法封裝起來
- Spring 裡,RequestMappingHandlerAdapter (@RequestMapping)
Template
- 於父類別定義不變的流程和演算法框架,由子類別實作抽象方法
- Spring 裡,JDBCTemplate
Decorator
- 動態給類別新增功能,不會改變到原本的內容
- 比繼承更有彈性
Observer
- 訂閱通知功能