单例模式代码
时间: 2023-07-03 21:16:33 浏览: 60
单例模式是一种创建型设计模式,用于确保类只有一个实例,并提供全局访问点。
以下是使用懒汉式单例模式实现的代码:
```java
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
以上代码中,私有的构造函数保证了该类不能被其他类实例化。getInstance()方法返回类的唯一实例。在第一次调用时,该方法会创建一个新的实例,以后每次调用都会返回之前创建的实例。
使用饿汉式单例模式实现的代码:
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
```
以上代码中,类的唯一实例是在类加载时创建的,因此不需要在getInstance()方法中进行任何检查或同步操作。
相关问题
Java单例模式代码
以下是Java中的单例模式代码示例:
```java
public class Singleton {
private static Singleton instance;
private Singleton() {
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
在这个示例中,Singleton类只能被实例化一次。它的构造函数是私有的,所以无法从外部进行实例化。getInstance()方法作为访问点,用于获取单例实例。如果实例尚未创建,它将创建一个新的实例,否则将返回现有实例。
c++ 单例模式代码
以下是 C++ 实现单例模式的代码:
```cpp
class Singleton {
private:
static Singleton* instance; // 声明静态指针变量
// 私有构造函数和析构函数
Singleton() {}
~Singleton() {}
public:
static Singleton* getInstance() { // 获取实例的静态方法
if (instance == nullptr) {
instance = new Singleton(); // 如果实例不存在,则创建实例
}
return instance;
}
void doSomething() { // 单例类的成员函数
// ...
}
};
// 初始化静态指针变量
Singleton* Singleton::instance = nullptr;
```
在使用时,可以通过调用 `Singleton::getInstance()` 方法来获取单例实例,然后通过实例调用成员函数 `doSomething()` 进行操作。