設計模式系列(個人學習記錄)

2021-09-29 14:50:40 字數 916 閱讀 9006

單例模式(singleton pattern)是我們常用的最簡單的設計模式之一,它提供了一種建立物件的最佳方式。

單例模式主要涉及到單一的類,此類負責建立自己的物件,同時確保只有單個物件被建立。這個類提供了一種訪問其唯一的物件的方式,可以直接訪問,可以不需要例項化該類的物件。

它的主要作用是保證在系統中乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點,常用於解決乙個全域性使用的類頻繁地建立與銷毀,避免對資源的多重占用

缺點:沒有介面,不能繼承,與單一職責原則衝突,乙個類應該只關心內部邏輯,而不關心外面怎麼樣來例項化。

優點:在記憶體裡只有乙個例項,減少了記憶體的開銷,尤其是頻繁的建立和銷毀例項,比如系統中的log儲存與列印功能;避免對資源的多重占用,比如寫檔案操作等

public

class

log///

/// 獲取唯一可用物件

///

///

///

public

static

loggetinstance

(writelog writelogfunction =

null

)return log;

}public

void

writeline

(string logmsg)

}

以上**建立了乙個單例模式的類,通過private關鍵字我們讓log 類不會被例項化,外部**唯有通過靜態方法getinstance 才能改為log類內部唯一物件:

public

static

void

main

(string[

] args)

個人學習設計模式之工廠模式

簡單工廠模式 乙個介面,多個實現類,乙個工廠類,用來例項化抽象的介面 優點 1 乙個呼叫者想建立乙個物件,只要知道其名稱就可以了。2 擴充套件性高,如果想增加乙個產品,只要擴充套件乙個工廠類就可以。3 遮蔽產品的具體實現,呼叫者只關心產品的介面。缺點 每次增加乙個產品時,都需要增加乙個具體類和物件實...

個人學習 SQL 記錄

1 5 進資料庫之前還會解碼,sql 語法中的語句 不會,str需要hex。python的hex 先ascii 轉換 再 hex 第一關concat ws sep,s1,s2.sn 將s1,s2.sn連線成字串,並用sep字元間隔 concat ws version,database user 獲取...

我的個人學習記錄

二叉樹基本運算的實現 演算法設計 程式中設計了四個函式 1.函式createbitree 用來實現利用先序的方式建立二叉樹 利用 擴充套件先序遍歷序列 建立二叉鍊錶,用 表示子樹為空 2.函式preorder 用來實現先序遍歷的遞迴演算法遍歷輸出二叉樹。3.函式oreorder 用來實現中序遍歷的遞...