享元和单例模式(六)
单例模式:整个项目只存在一个对象实例.
在盱眙等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、做网站 网站设计制作按需制作,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站建设,成都外贸网站制作,盱眙网站建设费用合理。
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 DictionaryMemberDictionary = new Dictionary () { {MemberLevel.Normal,new NormalUser() }, {MemberLevel.Silver,new SilverUser() }, {MemberLevel.Gold,new GoldUser() }, {MemberLevel.Diamond,new DiamondUser() }, }; }
策略模式和简单工厂中(二)中的MemberLevelConfig也算是一个简单的享元模式的应用.
Normal可以实例化新的对象,也可以项目共享MemberLevelConfig中的对象
标题名称:享元和单例模式(六)
文章起源:http://azwzsj.com/article/gcipsc.html