
去模式
GO語言的慣用設計和應用程序模式的策劃集合。
TMRTS/Go-Patterns的叉子,但與其他很棒的叉子合併。可以使用圖案中的圖案
合併的存儲庫
- 合併:https://github.com/nynicg/go-patterns
- 合併:https://github.com/weichou1229/go-patterns
- 合併:https://github.com/jianhan/go-patterns
- 合併:https://github.com/sakari-ai/go-patterns
- 合併:https://github.com/restudy/go-patterns
創建模式
| 圖案 | 描述 | 地位 |
|---|
| 抽象工廠 | 提供了一個用於創建複雜對象家族的界面 | ✔ |
| 建築商 | 使用簡單對象構建一個複雜的對象 | ✔ |
| 工廠方法 | 防禦對象的實例化,以創建實例的專用功能 | ✔ |
| 對像池 | 實例化並維護一組相同類型的對象實例 | ✔ |
| 辛格爾頓 | 將一種類型的實例化限制為一個對象 | ✔ |
結構模式
| 圖案 | 描述 | 地位 |
|---|
| 橋 | 將接口與實現相關聯,以便兩者可以獨立變化 | ✔ |
| 合成的 | 封裝並提供對許多不同對象的訪問 | ✔ |
| 裝飾師 | 靜態或動態地將行為添加到對像中 | ✔ |
| 正面 | 將一種類型用作API與其他許多類型 | ✔ |
| 輕量級 | 重用具有相似/相同狀態的對象的現有實例,以最大程度地減少資源使用情況 | ✔ |
| 代理人 | 為對象控制其動作提供了替代物 | ✔ |
| 適配器 | 為對象控制其動作提供了替代物 | ✔ |
行為模式
| 圖案 | 描述 | 地位 |
|---|
| 責任鏈 | 避免將發件人耦合到接收方,而不是對像一個機會處理請求 | ✔ |
| 命令 | 捆綁命令和爭論以後致電 | ✔ |
| 調解人 | 連接對象並充當代理 | ✔ |
| 紀念 | 生成一個不透明的令牌,可用於返回以前的狀態 | ✔ |
| 觀察者 | 提供通知事件/數據更改的回調 | ✔ |
| 註冊表 | 跟踪給定類的所有子類 | ✔ |
| 狀態 | 根據其內部狀態封裝同一對象的不同行為 | ✔ |
| 戰略 | 使算法的行為可以在運行時選擇 | ✔ |
| 模板 | 定義一個骨架類,該類別為子類辯護 | ✔ |
| 遊客 | 將算法與操作的對象分開 | ✔ |
| 口譯員 | 解釋您自己的語言或組成的命令 | ✔ |
同步模式
| 圖案 | 描述 | 地位 |
|---|
| 條件變量 | 提供了線程臨時放棄訪問的機制,以便等待某種條件 | ✘ |
| 鎖定/靜音 | 在資源上執行相互排斥限制以獲得獨家訪問 | ✘ |
| 監視器 | 靜音和條件變量模式的組合 | ✘ |
| 讀寫鎖 | 允許並行讀取訪問,但僅在寫操作中獨家訪問到資源 | ✔ |
| 訊號 | 允許控制對公共資源的訪問 | ✔ |
並發模式
| 圖案 | 描述 | 地位 |
|---|
| n級 | 防止過程進行,直到所有n個過程都到達障礙 | ✔ |
| 有限的並行性 | 完成具有資源限制的大量獨立任務 | ✔ |
| 播送 | 同時將消息同時傳遞給所有收件人 | ✘ |
| Coroutines | 允許在某些位置暫停和恢復執行的子例程 | ✘ |
| 發電機 | 一次產生一個值 | ✔ |
| 反應堆 | 交付服務請求同時交付給服務處理程序,並將其同步分配給關聯的請求處理程序 | ✘ |
| 並行性 | 完成大量獨立任務 | ✔ |
| 生產者消費者 | 將任務與任務執行分開 | ✔ |
消息模式
| 圖案 | 描述 | 地位 |
|---|
| 粉絲 | Funnels任務到工作匯(例如服務器) | ✔ |
| 粉絲 | 在工人中分發任務(例如生產者) | ✔ |
| 期貨和應許 | 充當結果的位置持有人,最初是為了同步目的而未知的 | ✔ |
| 發布/訂閱 | 將信息傳遞給訂閱主題的收件人的集合 | ✔ |
| 推和拉 | 將消息分發給在管道中安排的多個工人 | ✘ |
穩定模式
| 圖案 | 描述 | 地位 |
|---|
| 艙壁 | 強制執行故障遏制原則(即防止級聯失敗) | ✘ |
| 斷路器 | 當請求可能失敗時停止請求流 | ✔ |
| 最後期限 | 一旦響應的概率較低,允許客戶停止等待響應(例如等待10秒鐘的頁面刷新) | ✔ |
| 失敗 | 在請求開始時檢查所需資源的可用性,如果不滿足要求,則會失敗 | ✘ |
| 握手 | 詢問組件是否可以承擔更多負載,如果不能,請拒絕請求 | ✘ |
| 穩定狀態 | 對於累積資源的每個服務,其他一些服務都必須回收該資源 | ✘ |
分析模式
成語
| 圖案 | 描述 | 地位 |
|---|
| 功能選項 | 允許使用理智的默認值和慣用性替代創建乾淨的API | ✔ |
反國立
模式實現
Go-Pattern-evarmples