懒汉模式和饿汉模式类图
时间: 2024-03-25 19:34:55 浏览: 142
懒汉模式和饿汉模式都是单例设计模式的实现方式,用于确保一个类只有一个实例对象。
1. 懒汉模式:
懒汉模式是指在需要获取实例对象时才进行实例化。类图如下:
```
-------
| Singleton |
-------
| - instance: Singleton |
-------
| + getInstance(): Singleton |
-------
```
在懒汉模式中,Singleton类有一个私有的静态成员变量instance,用于保存唯一的实例对象。getInstance()方法是公有的静态方法,用于获取Singleton类的实例。在getInstance()方法中,首先判断instance是否为空,如果为空则创建一个新的实例对象并赋值给instance,然后返回instance;如果instance不为空,则直接返回已存在的实例对象。
2. 饿汉模式:
饿汉模式是指在类加载时就进行实例化,无论是否需要使用实例对象。类图如下:
```
-------
| Singleton |
-------
| + instance: Singleton |
-------
| + getInstance(): Singleton |
-------
```
在饿汉模式中,Singleton类有一个公有的静态成员变量instance,用于保存唯一的实例对象,并且在定义时就进行了初始化。getInstance()方法同样是公有的静态方法,用于获取Singleton类的实例。在getInstance()方法中,直接返回已存在的实例对象。
相关问题
用懒汉单例模式模式和饿汉单例模式模式模拟产生本班的班长并画出设计图
好的,让我来回答你的问题。对于懒汉单例模式和饿汉单例模式,它们都是用来创建一个类的唯一实例的设计模式。
懒汉单例模式是在第一次使用时才创建实例,而饿汉单例模式则是在类加载时就创建实例。
下面是用懒汉单例模式和饿汉单例模式模拟产生本班的班长的代码:
懒汉单例模式:
```java
public class ClassPresident {
private static ClassPresident instance;
private ClassPresident() {}
public static synchronized ClassPresident getInstance() {
if (instance == null) {
instance = new ClassPresident();
}
return instance;
}
}
```
饿汉单例模式:
```java
public class ClassPresident {
private static final ClassPresident instance = new ClassPresident();
private ClassPresident() {}
public static ClassPresident getInstance() {
return instance;
}
}
```
对于设计图,我可以提供一个简单的 UML 类图:
```
+-----------------+
| ClassPresident |
+-----------------+
| - instance |
+-----------------+
| + getInstance() |
+-----------------+
```
希望这个回答能够帮到你!
阅读全文