用静态内部类实现单例模式

基础知识:

  • Java程序的初始化顺序依次是:父类静态变量-->父类静态代码块-->子类静态变量-->子类静态代码块-->父类非静态变量-->父类非静态代码块-->父类构造函数-->子类非静态变量-->子类非静态代码块-->子类构造函数
  • 用静态的内部类实现单例模式的原理:静态内部类可以不依赖外部类的实例而被实例化。(更多关于静态内部类的内容,请看:Java的内部类

Java静态的内部类实现单例模式代码:

public class SingletonTest{
    private SingletonTest(){
 
    }
  
//开始写代码,使用内部静态类实现单例模式 public static SingletonTest getInstance(){
      
return innerStaticClass.instance; } static class innerStaticClass{   private static SingletonTest instance=new SingletonTest(); } //end_code
  public static void main(String args[]){ SingletonTest singleton1 = SingletonTest.getInstance(); SingletonTest singleton2 = SingletonTest.getInstance(); System.out.println(singleton1 == singleton2); } }

 

C#版本的单例模式

最简单的写法:

public class Singleton
{
    private Singleton(){}
    public static readonly Singleton instance = new Singleton();
}  

参考:

C#单例模式的三种写法
C#设计模式学习笔记-单例模式

 

posted @ 2017-08-22 19:04  morein2008  阅读(2284)  评论(0编辑  收藏  举报