原创 設計模式(4) 建造者模式

什麼是建造者模式 經典建造者模式的優缺點 對建造者模式的擴展 什麼是建造者模式 建造者模式將一個複雜的對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。創建者模式隱藏了複雜對象的創建過程,它把複雜對象的創建過程加

原创 設計模式(3) 抽象工廠模式

抽象工廠模式 優化抽象工廠 異步工廠 在學習抽象工廠模式前,先來回顧一下前面的簡單工廠和工廠方法模式。簡單工廠的職責非常簡單:構造某個實體類型,然後把實例作爲抽象類型返回; 工廠方法模式則進一步抽象出一個抽象的創建者和一個抽象的產品類型

原创 設計模式(2) 單例模式

單例模式 線程安全的Singleton 會破壞Singleton的情況 線程級Singleton 單例模式是幾個創建型模式中最獨立的一個,它的主要目標不是根據客戶程序調用生成一個新的實例,而是控制某個類型的實例數量只有一個。 GOF對單

原创 設計模式(1) 工廠方法模式

創建型模式 簡單工廠模式 工廠方法模式 IOC與工廠方法模式的結合 泛型工廠 委託工廠 創建型模式 創建型模式可以隔離客戶程序對需要實例化類型的依賴關係,這類模式一般通過將實例化具體對象的職責委託給第三方對象的方式,使得客戶程序或

原创 《算法》筆記 10 - 無向圖

表示無向圖的數據結構 鄰接表數組 深度優先搜索 深度優先搜索尋找路徑 深度優先搜索的性能特點 廣度優先搜索 兩種搜索方式的對比 圖表示由相連的結點所表示的抽象模型,這個模型可以用來研究類似“能否從某個點到達指定的另

原创 《算法》筆記 11 - 最小生成樹

最小生成樹的應用 切分定理 貪心算法 加權無向圖的數據結構 Prim算法 Kruskal算法 最小生成樹的應用 加權圖是一種爲每條邊關聯一個權值的圖模型,這種圖可以表示許多應用,比如在一副航空圖中,邊表示航線,權值就可以表示距

原创 《算法》筆記 8 - 二叉查找樹

二叉查找樹 查找 插入 性能 有序性相關的操作 最大鍵、最小鍵 向上取整、向下取整 選擇、排名 範圍查找 刪除操作 刪除最大鍵、最小鍵 通用刪除操作 二叉查找樹 前面瞭解的無序鏈表和有序數組在性能方面至少在線

原创 Docker基礎(1) 原理篇

Docker是什麼 Docker的構成 Docker的分層和寫時拷貝策略 Docker與主流虛擬機的區別 Docker鏡像與容器的關係 鏡像的變更管理 Docker是什麼 Docker是一個開源的應用容器引擎。它的理念是“Bu

原创 ASP.NET Core筆記(1) - 瞭解Startup類

Startup構造函數 ConfigureServices方法 Configure方法 在ConfigureWebHostDefaults中直接配置服務和請求管道 ASP.NET Core一般使用Startup類來進行應用的配

原创 ASP.NET Core筆記(2) - 依賴注入

服務的生命週期 鏈式注入時,生存期的選擇 TryAdd與泛型注入 替換內置服務容器 ASP.NET Core提供了默認的依賴注入容器,可以在Startup.ConfigureServices方法中進行服務注入的配置。 服務的生

原创 《算法》筆記 16 - 正則表達式

使用正則表達式描述模式 非確定有限狀態自動機NFA 模擬NFA的運行 NFA的表示 構造與正則表達式相對應的NFA NFA的模擬與可達性 除了查找子字符串,在很多時候並不知道被查找模式的完整信息,這時就需要用到正則表達式

原创 《算法》筆記 14 - 單詞查找樹

R向單詞查找樹 數據結構 查找 插入 查找所有鍵 通配符匹配 最長前綴 刪除 R向單詞查找樹的性質 三向單詞查找樹 三向單詞查找樹的性質 同字符串的排序一樣,利用字符串的性質開發的查找算法也比通用的算法更有效,這些

原创 《算法》筆記 17 - 數據壓縮

讀寫二進制數據 基因組數據的壓縮 遊程編碼 位圖 霍夫曼壓縮 前綴碼和單詞查找樹 構造前綴碼的單詞查找樹 寫入和讀取單詞查找樹 使用前綴碼壓縮 使用前綴碼展開 LZW壓縮 LZW的單詞查找樹 LZW的單詞查找樹 L

原创 《算法》筆記 15 - 子字符串查找

暴力子字符串查找算法 隱式回退 性能 顯式回退 Knuth-Morris-Pratt算法 確定有限狀態自動機 DFA的構造 性能 Boyer-Moore算法 跳躍表的構建 性能 Rabin-Karp指紋字符串算

原创 Docker基礎(3) 數據卷

創建數據卷 掛載Host目錄作爲數據卷 掛載Host的文件作爲數據卷 數據卷容器 數據卷的備份和恢復 Docker容器一旦被刪除,容器本身對應的rootfs文件系統就會被刪除,容器中的所有數據也將隨之消失。 Docker提供了