2.5 Singleton(单件)

【返回目录】

用面向对象的术语来描述人类的话,我们每个人都是人类这个类的一个实例,当然,如果细分的话还可以在人类下面分出很多子类,不过我们要说的重点不是这个类的层级划分。我们都知道,毛主席也是人类的一个实例,但是无论西方人、东方人还是非洲人都不可能忽视毛主席,他们一提到中国,可能首先想到的就是“毛主席”这三个字,其它的每个中国人在他们眼里可能就不那么招眼,在他们看来无非是黄皮肤黑头发的一个人而已,虽然毛主席也是这样的特征,但是他们却把他很清晰、很明确地分离出来,作为中国人的象征。作为中国乃至世界的伟人,全人类只有一个毛主席,虽然我们也常说“我就是我”,表明这世界上“只有一个我”,但我说过了,在别人眼里,我们可以忽略不计。“毛主席”可以很好地解释什么是Singleton(单件模式)。

单件模式表示,一个类有且仅有一个实例,任何用到该类对象实例的地方都是在调用或操作这个类唯一的实例,比方说尼克松访华会见的不是每一个中国人而是毛主席。请看代码:

   1: using System;
   2:  
   3: namespace Autumoon.DesignPatterns.AbstractFacotry
   4: {
   5:     public class Human
   6:     {
   7:         public string Name { get; set; }
   8:     }
   9:  
  10:     public class Chinese : Human
  11:     {
  12:         private static Chinese _instance = null;
  13:         public static Chinese Instance
  14:         {
  15:             get { return ((_instance == null) ? _instance = new Chinese { Name = "Zedong Mao" } : _instance); }
  16:         }
  17:     }
  18: }

毛主席是中国人的象征,所以人们一提到中国人就不由得首先想到毛主席:

   1: static void Main(string[] args)
   2: {
   3:     Console.WriteLine(Chinese.Instance.Name);
   4:  
   5:     Console.ReadLine();
   6: }
Chairman
posted @ 2007-12-10 14:41  麦机长  阅读(556)  评论(2编辑  收藏  举报