zoukankan      html  css  js  c++  java
  • Singleton (单件模式)

    意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。

    使用性: 

  • 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
  • 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

    代码:

    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;}
    }

            public class Client
        {
            public static int 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;
            }
        }
    }

查看全文
  • 相关阅读:
    25个优秀的 ASP.NET MVC教程及文章
    获取SQLSERVER数据库insert into操作的主键返回值,SCOPE_IDENTITY
    Silverlight 3.0 不再包含 asp:silverlight 控件
    MVP模式最佳实践(1)—MVP模式简介
    小谈.NET CLR
    XmlDocument,XmlNode,XmlElement创建复杂XML文档
    NHibernate的关联映射(onetoone,onetomany,manytomany)以及cascade分析
    关于CSS优先级的探讨
    使用ASP.NET实现Model View Presenter(MVP)
    用IIS来启用SSL
  • 原文地址:https://www.cnblogs.com/sophie/p/231387.html
  • Copyright © 2011-2022 走看看