单件模式概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
我之前的概念搞混了,以为只要一个实例就是单件模式。它最主要的是提供一个访问它的全局访问点,也就是多次访问,一个类的实例地址。
代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 |
using
System;namespace
GlobalSpooler{ /// <summary> /// Summary description for Spooler. /// </summary> public
class Spooler { private
static Spooler MySpooler ; private
static bool instance_flag= false; private
Spooler() { instance_flag = true; } public
static Spooler getSpooler() { if
(! instance_flag) MySpooler = new
Spooler (); return
MySpooler; } }} |
Main访问代码
using System; namespace GlobalSpooler { /// <summary> /// Summary description for Class1. /// </summary> class GlobSpooler { static void Main(string[] args) { Spooler sp1 = Spooler.getSpooler(); if (sp1 != null) Console.WriteLine("Got 1 spooler"); Spooler sp2 = Spooler.getSpooler(); if (sp2 == null) Console.WriteLine("Can\‘t get spooler"); if (sp1==sp2) Console.WriteLine ("They are same."); else Console.WriteLine ("They are not same."); //fails at compile time //Spooler sp3 = new Spooler(); } } }
原文:http://www.cnblogs.com/chinaagan/p/3558518.html