0%

Design pattern

簡單介紹 Design pattern

Factory

  • 簡單工廠: if else 判斷 type 來 new 新物件
    1
    2
    3
    public interface Phone {
    void make();
    }
  • 工廠方法: 針對一類產品,進行抽象化
    1
    2
    3
    public interface AbstractFactory {
    Iphone makePhone();
    }
  • 抽象工廠: 可擁有不同類型產品
    1
    2
    3
    4
    public interface AbstractFactory {
    Iphone makePhone();
    NoteBook makeNoteBook();
    }

Singleton

  • 一個類只有一個實例,而且自行實例化並向整個系統提供這個實例

Proxy

  • 為物件提供代理介面,控制其存取,不直接操作本身

Strategy

  • 於不同場景,有不同算法,將演算法封裝起來
  • Spring 裡,RequestMappingHandlerAdapter (@RequestMapping)

Template

  • 於父類別定義不變的流程和演算法框架,由子類別實作抽象方法
  • Spring 裡,JDBCTemplate

Decorator

https://zhuanlan.zhihu.com/p/64584677

  • 動態給類別新增功能,不會改變到原本的內容
  • 比繼承更有彈性

Observer

  • 訂閱通知功能