请使用单列模式

如题,为什么要使用单列模式?在此之前需要搞清楚什么是单列模式,百度百科的解答是这样的,

单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。(单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。)

这里说的很清楚,就是为了确保某一个类只有一个实例,这样做的好处是什么?可能举个例子你就会知道为什么要使用单列模式了!

你是否在开发的过程中会要到这样一种情况,使用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。

原文地址:https://www.cnblogs.com/xlhblogs/p/2418939.html