设计模式C#描述——单例与多例模式

设计模式C#描述——单例与多例模式

作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。

 

单例模式有以下特点:

单例类只能有一个实例。

单例类必须自己创建自己的唯一实例。

单例类必须给所有其他对象提供这一实例。

一个典型的单例类的实现如下所示:其中构造子私有表示子类不能被继承。

 

public class Singleton

     {

         private static Singleton m_instance = null;

 

         private Singleton()

         {

         }

         public static Singleton getInstance()

         {

              if(m_instance==null)

              {

                   m_instance=new Singleton();

              }

              return m_instance;

         }

     }

 

所谓多例模式,实际上就是单例模式的自然推广,单例类一般情况下只可以有一个实例,但单例类也可以推广到允许有限个实例,这种模式就是多例模式。作为对象的创建模式,多例模式有以下特点:

多例类可以有多个实例。

多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。

多例类分为有上限多例类与无上限多例类。

一个有上限的多例类已经把实例的上限当作逻辑的一部分,并建造到了多例类的内部。如下:

public class Multiton

     {

         private static Multiton instance1=null;

         private static Multiton instance2=null;

 

         private Multiton()

         {

          }

 

         public static Multiton getInstance(int whichOne)

         {

              if(whichOne==1)

              {

                   if(instance1==null)

                   {

                       instance1=new Multiton ();

                   }

                   return instance1;

              }

              else

              {

                   if(instance2==null)

                   {

                       instance2=new Multiton ();

                   }

               return instance2;

 

              }

         }

     }

多例类的实例数目不需要有上限,实例数目没有上限的多例模式就叫做无上限多例模式。由于没有上限的多例类对实例的数目是没有限制的,因此,虽然这种多例模式是单例模式的推广,但是这种多例类并不一定能够回到单例类。一般采用聚集管理所有的实例。

  • 0
    点赞
  • 3
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

mutou23

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值