设计模式学习笔记二单件

最长用到的实际模式...爱死了.........Only you...就是说只有一个,

比如总经理只有一个.......经常用的有数据提供程序

    public class DbProvider
{

public string ConnectionString = "";
private DbProviderFactory MyDbFactorie = null;
private static DbProvider _Current = null;
public static DbProvider Current
{
get
{
if (_Current == null)
{

_Current
= new DbProvider();
}

return _Current;
}
}

这样的代码不可防止多线程访问

    public class DbProvider
{

public string ConnectionString = "";
private DbProviderFactory MyDbFactorie = null;
private static DbProvider _Current = null;
object o=new object();
public static DbProvider Current
{
get
{
if (_Current == null)
{
lock(o)
{
if (_Current == null)
{

_Current
= new DbProvider();
}

}

}

return _Current;
}
}

下面看个集中管理,比如说总部下面有不同的总经理但是,这些总经理都是唯一的,设计不同业态比如家居和酒店等等

这样我们在实例化后就可以访问只读的Item就可以了

 class o
{
public o()
{

object c = new object();
List
<string> c2=new List<string>();
item.Add(
"object", c);
item.Add(
"List", c2);

}
System.Collections.Generic.Dictionary
<string, object> item = new Dictionary<string, object>();
public Dictionary<string, object> Item
{
get
{
return item;
}
}

}

最后听说还有限制一个对象的几个实例不过我看这像是享元模式故此不列出来

原文地址:https://www.cnblogs.com/angellapples/p/2125575.html