关于,Singleton。

原创 2004年08月30日 15:07:00

// Singleton<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

// Intent: "Ensure a class only has one instance, and provide a global

// point of access to it".

 

// For further information, read "Design Patterns", p127, Gamma et al.,

// Addison-Wesley, ISBN:0-201-63361-2

 

/* Notes:

 * If it makes sense to have only a single instance of a class (a so-called

 * singleton), then it makes sense to enforce this (to elimintate potential

 * errors, etc).

 *

 * A class based on the singleton design pattern protects its constructor,

 * so that only the class itself (e.g. in a static method) may instantiate itself.

 * It exposes an Instance method which allows client code to retrieve the

 * current instance, and if it does not exist to instantiate it. 

 */

 

namespace Singleton_DesignPattern

{

    using System;

 

    class Singleton

    {

        private static Singleton _instance;

 

        public static Singleton Instance()

        {

            if (_instance == null)

                _instance = new Singleton();

            return _instance;

        }

        protected Singleton() { }

 

        // Just to prove only a single instance exists

        private int x = 0;

        public void SetX(int newVal) { x = newVal; }

        public int GetX() { return x; }

    }

 

    /// <summary>

    ///    Summary description for Client.

    /// </summary>

    public class Client

    {

        public static int <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />Main(string[] args)

        {

            int val;

            // can't call new, because constructor is protected

            Singleton FirstSingleton = Singleton.Instance();

            Singleton SecondSingleton = Singleton.Instance();

 

            // Now we have two variables, but both should refer to the same object

            // Let's prove this, by setting a value using one variable, and

            // (hopefully!) retrieving the same value using the second variable

            FirstSingleton.SetX(4);

            Console.WriteLine("Using first variable for singleton, set x to 4");

 

            val = SecondSingleton.GetX();

            Console.WriteLine("Using second variable for singleton, value retrieved = {0}", val);

            return 0;

        }

    }

}

 

Unity继承MonoBehaviour的静态单例

using UnityEngine; public class Singleton : MonoBehaviour where T : MonoBehaviour { private stat...
  • qazwsx185313301
  • qazwsx185313301
  • 2016年10月29日 11:15
  • 1580

C++完美实现Singleton模式

Singleton模式是常用的设计模式之一,但是要实现一个真正实用的设计模式却也不是件容易的事情。 1.         标准的实现 class Singleton { public:        ...
  • u012786754
  • u012786754
  • 2014年12月19日 18:25
  • 1493

Spring中Singleton模式的线程安全

不知道哪里的文章,总结性还是比较好的。但是代码凌乱,有的还没有图。如果找到原文了可以进行替换! spring中的单例 spring中管理的bean实例默认情况下是单例的[sigleton类型],就...
  • cs408
  • cs408
  • 2015年10月08日 15:29
  • 2446

运行xml文件的类AnimatePacker.h、AnimatePacker.cpp、Singleton.h

  • 2017年02月08日 14:32
  • 4KB
  • 下载

设计模式总结-模板设计模式,单例模式(singleTon)

  • 2017年05月08日 11:35
  • 2KB
  • 下载

单例模式(Singleton)的6种实现

  • 2017年11月02日 11:14
  • 1.17MB
  • 下载

Common_singleton

  • 2016年05月09日 10:52
  • 777B
  • 下载

C++完美实现Singleton模式

  • 2014年05月21日 13:04
  • 16KB
  • 下载

Singleton 设计模式

  • 2014年04月08日 13:27
  • 28KB
  • 下载

单例极致 singleton C++

  • 2015年06月26日 16:28
  • 66KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于,Singleton。
举报原因:
原因补充:

(最多只允许输入30个字)