请使用单列模式

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

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

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

你是否在开发的过程中会要到这样一种情况,使用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/archive/2012/03/27/2418939.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值