單例模式:整個項目只存在一個對象實例.
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。