单例模式中为什么构造函数为私有?为什么指向本身实例的类属性为静态?为什么以自己实例为返回值的类方法为静态?

1、单例模式中为什么构造函数为私有private?

       将该类的构造函数私有化,目的是禁止其他程序创建该类的对象,同时也是为了提醒查看代码的人我这里是在使用单例模式,防止他人将这里任意修改。此时,需要提供一个可访问类自定义对象的类成员方法(对外提供该对象的访问方式)。

2、为什么指向本身实例的类属性为静态?

        因为指向自己实例的私有引用在被类方法(Getinstance)调用时被初始化,只有静态成员变量才能在没有创建对象时进行初始化,并且类的静态成员在第一次使用时不会再被初始化,保证了单例,因此设置为静态。

3、为什么以自己实例为返回值的类方法为静态?

       通过类方法(GetInstance) 获取instance,类属性instance为静态的(static),则需要类的静态方法才能调用,因此该类方法应设为静态的。

发布了36 篇原创文章 · 获赞 6 · 访问量 2043

猜你喜欢

转载自blog.csdn.net/the_sea1/article/details/101755838