wordpress调用网站最新文章,php 企业网站,北京网络公司注册,天然气公司的网站应该怎么做什么是单例模式#xff1f;
保证一个类仅有一个实例#xff0c;并提供一个访问它的全局访问点
单例模式的应用场景
1.整个程序的运行中只允许有一个类的实例#xff1b;
2.需要频繁实例化然后销毁的对象。
3.创建对象时耗时过多或者耗资源过多#xff0c;但又经常用到…什么是单例模式
保证一个类仅有一个实例并提供一个访问它的全局访问点
单例模式的应用场景
1.整个程序的运行中只允许有一个类的实例
2.需要频繁实例化然后销毁的对象。
3.创建对象时耗时过多或者耗资源过多但又经常用到的对象。
4.方便资源相互通信的环境
饿汉式与懒汉式
饿汉式
在程序创建的时候就进行初始化并且对象唯一。
代码
public class SuperTeacher {private static SuperTeacher superTeacher new SuperTeacher();private SuperTeacher(){}public static SuperTeacher getInstance(){return superTeacher;}
}
注释 懒汉式
需要时才创建于堆中多线程情况下不能保证唯一性。
代码
public class SuperStudent {private static SuperStudent instance;private SuperStudent(){}public static SuperStudent getInstance(){if(null instance){instance new SuperStudent();}return instance;}
}注释 多线程情景下
在多线程情景下只能使用饿汉式因为程序加载就实例化了一个对象。不想懒汉式别人调用了getInstance方法再实例化对象。无法保证对象的唯一性。 当然了我们可以给懒汉式加锁以保证其唯一性。使用synchronized修饰公有方法即可
单例模式的优缺点
优点
对频繁访问又销毁的对象单例模式保证了对象的唯一性。减少了系统的性能损耗。保证全局唯一对象。允许全局访问。允许可变数目的实例。
缺点
扩展性很差。符合的场景有限。如果实例化的对象长时间不被使用系统会认为是垃圾。而进行回收。可能导致对象状态的丢失。