Java開發中常見的設計模式
阿新 • • 發佈:2019-01-01
1、模板方法模式
定義一個操作中的演算法的骨架,而將一些步驟延遲到子類中,如Spring中的JdbcTemplate
2、代理模式
Spring的Proxy模式在aop中有體現
3、觀察者
定義物件間的一種一對多的依賴關係,當一個物件的狀態發生改變時,所有依賴於它的物件都得到通知
並被自動更新。
Spring中Observer模式常用的地方是listener的實現。如ApplicationListener。
4、介面卡模式
5、策略模式
使用了java的繼承和多型
案例1:加減法計算器,定義一個計算類介面,加法和減法類都實現它,加的時候傳入加法物件。
案例2:匯出excel,pdf,word時,分別建立不同的物件
簡單理解:執行多個事情時,建立多個物件
6、單例模式
解決一個全域性使用的類頻繁的建立與銷燬
7、工廠模式
分為三種:簡單工廠,工廠方法,抽象工廠
根據“需求”生產“產品”,解耦“需求”“工廠”和“產品”。
簡單工廠:通過構造時傳入的標識來生產產品,不同產品都在同一個工廠中生產,每新增加一種產品,
需要改工廠類,來判斷,這種判斷會隨著產品的增加而增加,給擴充套件和維護帶來麻煩
簡單工廠專案案例:根據傳入的 不同(比如1對應支付流水,2 對應訂單流水),生成不同型別的流水
號
工廠方法:(使一個類的使用延遲到子類)
其中的工廠類根據傳入的A.class型別,反射出例項。
產品介面,產品類A,產品類B,工廠類可以生成不同的產品類物件,如果要隨著產品的增加而增加,工
廠類不變,只需新增一個產品類C即可。
專案案例:郵件伺服器,有三種協議,POP3,IMAP,HTTP,把這三種做完產品類,在定義個工廠方法
抽象工廠:一個工廠生產多個產品,它們是一個產品族,不同的產品族的產品派生於不同的抽象產品
定義一個操作中的演算法的骨架,而將一些步驟延遲到子類中,如Spring中的JdbcTemplate
2、代理模式
Spring的Proxy模式在aop中有體現
3、觀察者
定義物件間的一種一對多的依賴關係,當一個物件的狀態發生改變時,所有依賴於它的物件都得到通知
並被自動更新。
Spring中Observer模式常用的地方是listener的實現。如ApplicationListener。
4、介面卡模式
5、策略模式
使用了java的繼承和多型
案例1:加減法計算器,定義一個計算類介面,加法和減法類都實現它,加的時候傳入加法物件。
案例2:匯出excel,pdf,word時,分別建立不同的物件
簡單理解:執行多個事情時,建立多個物件
6、單例模式
解決一個全域性使用的類頻繁的建立與銷燬
7、工廠模式
分為三種:簡單工廠,工廠方法,抽象工廠
根據“需求”生產“產品”,解耦“需求”“工廠”和“產品”。
簡單工廠:通過構造時傳入的標識來生產產品,不同產品都在同一個工廠中生產,每新增加一種產品,
需要改工廠類,來判斷,這種判斷會隨著產品的增加而增加,給擴充套件和維護帶來麻煩
簡單工廠專案案例:根據傳入的 不同(比如1對應支付流水,2 對應訂單流水),生成不同型別的流水
號
工廠方法:(使一個類的使用延遲到子類)
其中的工廠類根據傳入的A.class型別,反射出例項。
產品介面,產品類A,產品類B,工廠類可以生成不同的產品類物件,如果要隨著產品的增加而增加,工
廠類不變,只需新增一個產品類C即可。
專案案例:郵件伺服器,有三種協議,POP3,IMAP,HTTP,把這三種做完產品類,在定義個工廠方法
抽象工廠:一個工廠生產多個產品,它們是一個產品族,不同的產品族的產品派生於不同的抽象產品