如题,为什么要使用单列模式?在此之前需要搞清楚什么是单列模式,百度百科的解答是这样的,
单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。(单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。)
这里说的很清楚,就是为了确保某一个类只有一个实例,这样做的好处是什么?可能举个例子你就会知道为什么要使用单列模式了!
你是否在开发的过程中会要到这样一种情况,使用linq保存一个实体对象的时候,遇到这样一个错误!
这个错误的提示给我们的信息是:对象无法将附加到objectContext对象添加到未与原对象关联的EntityCollection或EntityReferrence。
他说明一个问题,那就是我们附加的ObjectContext对象附加错了,他不是跟原ObjectContext对象是同一对象。造成这个错误产生的原因就是因为我们没有使用原ObjectContext对象,而是重新new了一个ObjectContext对象。这就没有确保 某一个类只有一个实例原则。因此,这里我们就需要使用到单列模式来确保某一个类只有一个实例。
单列模式之我的写法:
private static readonly Model1Container context =
new Model1Container();
/// <summary>
/// 单列模式
/// </summary>
/// <returns></returns>
public static Model1Container InitApplyContext()
{
return context;
}
使用readonly的原因:就是防止动态改变context。