单例模式:整个项目只存在一个对象实例.
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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。