您好,登錄后才能下訂單哦!
單例模式:整個項目只存在一個對象實例.
public class Single { private static Single _single = null; private static object lockObject = new object(); private Single() { } public static Single CreateInstance() { if (_single == null) { lock (lockObject) { if (_single == null) { _single = new Single(); } } } return _single; } }
如果是多線程則需要用到Lock和外層多加一層If
享元模式:可以是整個項目共用一個對象實例,也可以按需要創造不同的實例.
public static class MemberLevelConfig { public static Dictionary<MemberLevel, BaseMember> MemberDictionary = new Dictionary<MemberLevel, BaseMember>() { {MemberLevel.Normal,new NormalUser() }, {MemberLevel.Silver,new SilverUser() }, {MemberLevel.Gold,new GoldUser() }, {MemberLevel.Diamond,new DiamondUser() }, }; }
策略模式和簡單工廠中(二)中的MemberLevelConfig也算是一個簡單的享元模式的應用.
Normal可以實例化新的對象,也可以項目共享MemberLevelConfig中的對象
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。