静态代码块及饿汉式单例模式

来源:互联网 发布:java 多线程面试 编辑:程序博客网 时间:2024/06/04 18:28

先复习一下代码的执行顺序,静态成员变量的初始化是最先开始的,然后是静态代码块。

单例模式学的时候感觉比较抽象,到后面要用各种sdk了就好理解了,比如项目中只和一台redis服务器进行通讯,那么就按单例模式对sdk进行封装吧!

    /// <summary>    /// 静态代码块运行顺序:1234    /// </summary>    public class MyJingTaiDaimaKuai    {        public static int i = test1();//最开始执行        public int age = test2();//new的时候先执行成员变量的初始化,再执行构造函数        static MyJingTaiDaimaKuai()        {            Console.WriteLine("静态代码块(2)");//再执行        }        public MyJingTaiDaimaKuai()        {            Console.WriteLine("构造函数(4)");        }        public static int test1()        {            Console.WriteLine("test1(1)");            return 3;        }        public static int test2()        {            Console.WriteLine("test2(3)");            return 333;        }    }    /// <summary>    /// 饿汉式单例模式:    /// 1、提供一个静态公共对象    /// 2、构造函数声明为private,避免外界调用    /// </summary>    class God//例一    {        private static God Instance = new God();        private God() { }         public static God GetInstance()        {            return Instance;        }    }    class God1//例二    {        public static God1 GetInstance { get; private set; } = new God1();        private God1() { }     }    //也可以利用静态代码块、构造函数,也可以把唯一实例修饰为readonly


阅读全文
0 0