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