单例模式与多例模式
来源:互联网 发布:一体式水冷 知乎 编辑:程序博客网 时间:2024/05/16 08:44
设计模式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;
}
}
}
多例类的实例数目不需要有上限,实例数目没有上限的多例模式就叫做无上限多例模式。由于没有上限的多例类对实例的数目是没有限制的,因此,虽然这种多例模式是单例模式的推广,但是这种多例类并不一定能够回到单例类。一般采用聚集管理所有的实例。
Web项目中使用NLog记录日志,利用单件模式控制整个项目只有一个Logger对象的问题
在web项目中利用NLog记录一些项目运行的状态信息:异常、标示数据等
设计此类最初的目的是提高性能,利用单件模式控制整个项目只有一个NLog.Logger日志操作对象。
- 单例模式与多例模式
- 单例模式与多例模式
- 单例模式与多例模式
- [设计模式] 多例模式与单例模式区别
- java与模式(1)单例模式
- 单例模式与双重检测模式
- 单例模式与工厂模式
- 单例模式与工厂模式
- PHP单例模式与工厂模式
- PHP (单例模式与工厂模式)
- 《JAVA与模式》之单例模式
- 享元模式与单例模式
- 《JAVA与模式》之单例模式
- 《JAVA与模式》之单例模式
- 语言与模式-01单例模式
- 《JAVA与模式》之单例模式
- 《JAVA与模式》之单例模式
- 《JAVA与模式》之单例模式
- 学会理解并编辑fstab(ZZ)
- PowerDesigner 12.5及破解补丁
- U-BOOT全线移植分析系列之三 U-BOOT在AT91RM9200上的移植
- 哈哈,今天混积分来了
- -------------------------SQL SERVER函数将人民币数字转换成大写形式---------------------
- 单例模式与多例模式
- 关于钩子
- 复制构造函数和operator=
- 歪论:中国需用物业税来抑制高房价
- 万事开头难
- Linux下MATLAB中运行MATLAB程序并在web中显示结果
- 在论坛上跟人骂架,感觉很爽
- 在算法的漩涡里踌躇着
- TI的五大热点应用方案瞄准中西部市场需求