從今天開始,我每週會寫乙個關於設計模式的文章,還是用自己的語言,從自己的角度來闡述設計模式的用途,好處,以及怎麼用。
首先,最簡單的也就是單例了,我就用他作為自己的第一篇設計模式的文章吧。
1. 單例的目的是什麼?
這個應該很明顯,保證乙個類只有單一的例項,也就是說你無法通過new或createinstance來建立這個類的乙個新例項。
2. 單例的好處在**?
當乙個物件在程式內部只能有乙個例項的時候,它可以保證我們不會重複建立,而是始終指向同乙個物件。
3. 怎麼用?
單例模式的實現**如下:
namespace singlepattern
public static singleclass getinstance()
return instance;}
}} 上面的**,可以說是乙個標準的單例的**,但是上述**在多執行緒的時候有可能會產生多個例項,為了避免這個情況的發生,我們需要限制同一時間,只能有乙個執行緒訪問。
利用lock可以實現我們的目的:
namespace singlepattern
// 靜態獲取物件的方法
public static singleclass getinstance()
}return instance;}
}} 另乙個方法:
這個方法經過調整之後,也可以用於限制乙個窗體只能啟動乙個例項。
using system.threading;
namespace singlepattern
// 靜態獲取物件的方法
public static singleclass getinstance()
mutex.close();
return instance;}
}}
單例模式 單例模式
餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...
單例 單例模式
簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...
單例模式 懶漢式單例模式
單例模式有餓漢時模式和懶漢式 單例模式也就是說同一類只返回乙個物件供外部類使用 懶漢式即延遲初始化單例。在多執行緒環境下,簡單的懶漢式會有執行緒安全。懶漢式單例模式解決線性安全問題如下 1 使用雙重檢查鎖機制解決執行緒安全問題。2 單例模式還有更好的解決方案,即使用靜態類方式。懶漢式單例模式典型 p...