1.單例模式 就是一個類只產生一個對象 對應數據庫鏈接 定時執行者服務(ScheduledExecutorService) 在整個項目中應該只有一個對象
2.工廠模式 定義一個用於建立對象的接口 讓子類決定具體的實現 好比飛機大戰建立不一樣的飛機 不一樣
的英雄
3.外觀模式 定義子系統的接口組合 實現統一的界面 好比(Statement和PerpareStatement數據
庫鏈接操做的封裝類)
4.裝飾者模式 動態的給對象添加額外的職能 做爲人在不一樣的場景扮演不一樣的角色 典型的是io流
5.組合模式 給對象構造樹狀結構 以表示部分和總體的層次結構 比較常見的有 文件目錄 多級菜單
6.模板模式 就是給一個操做添加算法框架 一些操做延遲到子類實現 比較常見的是讀取配置文件
7.原型模式 就是在原型對象建立新的對象 淺克隆會拷貝基本數據類型和String類型 其餘引用類型不會
拷貝(通常)
8.建造者模式 就是給一個複雜對象的構建和表示分離 使的一樣的構建方式能夠有不一樣的表示方式
protobuf的類的構建
9.策略模式 就是定義一系列的算法 封裝起來 讓他們能夠相互替換 使的能夠根據需求而變化、
10.適配器模式 就是將一個接口轉換成客戶端須要的接口 使的本來接口不兼容不能一塊兒工做的能夠一
起工做 100V的電壓轉爲36V
11.橋接模式 就是將抽象部分和實現部分分離使的能夠 抽象和實現獨立的變化 不一樣的飛機發射不一樣的
子彈 不一樣的英雄釋放不一樣的技能
12.享元模式 就是運用共享技術管理對象 比較常見的有緩存和數據庫鏈接 這些不常常變化的數據可
以存入緩存中 提升查詢速度
13.責任鏈模式 就是將多個對象處理請求 將它們連成一條鏈 每一個對象都沿着這條鏈處理請求 web 的
過濾器就是這個原理 代碼實現就是對象實現統一的接口 用集合存儲對象 遍歷調用接口方法
14.命令模式 就是將一個請求封裝成一個對象 使的能夠實現不一樣的請求對客戶進行參數化
好比鼠標點擊監聽器 代碼實現 暴露一個接口成員變量
15.訪問一個聚合對象的內容而無需暴露它的內部表示 支持對聚合對象的遍歷
好比集合的遍歷 代碼實現 在一個類中定義集合聚合對象成員變量 在這個類中處理聚合對象內容提
供方法給外部
16.中介者模式 用一箇中介對象封裝多個對象的交互 使的對象之間不用顯示的引用 耦合鬆散 獨立的
改變對象之間的交互 代碼實現 就是定義一箇中介類 定義多個對象的成員變量 中介類重寫接口方
法 實現不一樣的交互
17.備忘錄模式 在不破壞封裝性的前提下 訪問一個對象的內部狀態 並在對象以外保存這個內部對象
使的對象能夠恢復到保存的狀態 記事本 undo redo 歷史記錄恢復 代碼實現 用一個類 定義一個集
合成員變量 和索引 根據索引獲取指定時間的備份
18.觀察者模式 定義多個對象之間的一對多的依賴關係 當一個對象發生改變 依賴於他的對象獲得通知
併發生改變 好比給日誌打印 spirng的事件監聽 代碼實現 就是讓用個集合存儲監聽接口
19.代理模式 爲其餘對象提供代理 以控制這對象的訪問 好比dao層數據庫訪問層 數據源類型用模板模
式實現 代碼實現 代理類實現被代理方法 而且定義被代理類的成員變量