zoukankan      html  css  js  c++  java
  • 用泛型做一个通用的单件模式

    相信大家经常用到单件模式.经常重复的写着部分代码来实现单件.我粘一段可以重用的单件模式供大家参考.与以前的大家经常写的相比,各有优缺点,各位自行取舍.

    public class SingletonDome
    {
        public SingletonDome()
        {
    
        }
        
        public static SingletonDome instance
        {
            get
            {
                return Singleton<SingletonDome>.Instance;
            }
        }
    }
    
    public class Singleton<T> where T : new()
    {
        public static T Instance
        {
            get { return SingletonCreator.instance; }
        }
    
        class SingletonCreator
        {
            internal static readonly T instance = new T();
        }
    }

    先说优点:正如大家所见,只需要调用泛型 Singleton<T>.Instance就可以实现单件模式了.而且可以重用,任何要实现单件的类都是一句话就行了.

    缺点:由于在类SingletonCreator 里面要实例化具体的类,导致类的构造函数必需让Singleton<T>可以访问,可能导致调用者直接new一个实例而不使用单件

  • 相关阅读:
    Qt之QLineEdit
    Redis与Java
    Qt之属性系统
    Qt之Meta-Object系统
    设计模式(八)外观模式
    Qt之QRadioButton
    Qt之QSystemTrayIcon
    Redis与Java
    JSP公用COMMON文件
    eclipse远程调试Tomcat方法[转]
  • 原文地址:https://www.cnblogs.com/masahiro/p/10131675.html
Copyright © 2011-2022 走看看