导读:很多朋友问到关于django单例模式在哪里使用的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
java web 单例模式 用在什么地方 csdn
不用例子,如果你的某个类在整个工程中只需要一个实例,就可以用单例模式。
比如你的工程需要读取配置文件,一般情况下你会写个配置文件的类,而这个类在整个工程里只需要new一次,所有调用者都是用同一个实例,那么这个类就可以采用单例模式
Java单例模式怎么用?
java模式之单例模式:
单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
3,整个系统都要使用这个实例
例: 在下面的对象图中,有一个"单例对象",而"客户甲"、"客户乙" 和"客户丙"是单例对象的三个客户对象。可以看到,所有的客户对象共享一个单例对象。而且从单例对象到自身的连接线可以看出,单例对象持有对自己的引用。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。一些资源管理器常常设计成单例模式。
外部资源:譬如每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干个通信端口,系统应当集中管理这些通信端口,以避免一个通信端口被两个请求同时调用。内部资源,譬如,大多数的软件都有一个(甚至多个)属性文件存放系统配置。这样的系统应当由一个对象来管理这些属性文件。
一个例子:Windows 回收站。
在整个视窗系统中,回收站只能有一个实例,整个系统都使用这个惟一的实例,而且回收站自行提供自己的实例。因此,回收站是单例模式的应用。
两种形式:
1,饿汉式单例类
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
单例模式都用在什么地方
1. 抽象工厂模式,Builder模式和Prototype模式可以在他们的实现中使用单例模式
2. Facade对象通常是Singleton因为一般之需要一个Facade对象就行了
3. 状态Bean通常是Singleton
4. 在操作外部资源如打印机或者文件时,需要使用Singleton以保证没有对外部资源的并发操作。
单例模式的例子:
public class Singleton {
// 私有的构造方法可以防止单例在其他类中被构造
private Singleton() {}
/**
* SingletonHolder 在初次执行Singleton.getInstance()后者初次第一次访问SingletonHolder.INSTANCE的时候被加载
*/
private static class SingletonHolder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}
java单例模式在什么地方使用
如果在整个项目周期中,只需要一个实例,就可以使用单例模式,比如Spring上下文Context、Servlet Application类等。
结语:以上就是首席CTO笔记为大家整理的关于django单例模式在哪里使用的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~