黑马程序员技术交流社区
标题:
什么是单例模式啊?
[打印本页]
作者:
--_—
时间:
2014-7-9 10:15
标题:
什么是单例模式啊?
本帖最后由 --_— 于 2014-7-10 14:16 编辑
单例模式?是什么概念,有什么特点呢?又有哪些作用呢?
作者:
签发
时间:
2014-7-9 10:46
单例模式是一种常用的软件设计模式。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
作者:
_xixi_
时间:
2014-7-9 13:27
单例模式,顾名思义,就是一个类只能new一个实例,特点主要有:
1、私有化构造函数
2、提供一个私有的静态的类型变量,比如以下提供的是一个私有的静态的Person类型变量;
3、提供一个公共的静态的方法,用来返回上面的变量,这个变量指向的是单例模式里面的有且仅有一个的实例;
class Person
{
public string Name { get; set; }
private static Person p; //声明一个私有静态变量
//私有构造函数,只能在当前类里面使用
private Person()
{
this.Name = "小明";
}
//公共静态方法,返回一个指向特定对象的变量
public static Person GetSingle()
{
//if判断使得永远不会重新new第二个Person对象
if (p==null)
p = new Person();
return p;
}
}
class Program
{
static void Main(string[] args)
{
Person p = new Person(); //错误!不能new ,因为不能调用Person类里面的私有构造函数
Person p0 = Person.GetSingle();
Person p1 = Person.GetSingle();
Person p2 = Person.GetSingle();//p0、p1、p2指向的都是同一个对象
Console.WriteLine("{0}--{1}--{2}", p0.Name, p1.Name, p2.Name);//输出 小明--小明--小明
Console.ReadKey();
}
}
复制代码
作者:
--_—
时间:
2014-7-10 14:13
_xixi_ 发表于 2014-7-9 13:27
单例模式,顾名思义,就是一个类只能new一个实例,特点主要有:
1、私有化构造函数
2、提供一个私有的静态 ...
thank you!
作者:
gwljp
时间:
2014-7-10 16:35
单例模式一般多用于和数据库的链接
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2