java设计模式枚举
时间: 2024-12-28 15:21:03 浏览: 0
### Java 枚举设计模式
#### 单例设计模式
枚举实现单例设计模式是一种简单而有效的方式。这种方式不仅能够确保线程安全,还能够防止反序列化和反射攻击带来的多实例问题。
```java
package java_mode_06;
public enum SingletonEnum {
INSTANCE;
private String data;
private SingletonEnum() {
data = "这是单例的数据";
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
```
在这个例子中,`SingletonEnum` 是一个枚举类,只有一个名为 `INSTANCE` 的枚举常量。这意味着在整个应用程序生命周期内只会存在这一个实例[^1]。
#### 策略设计模式
除了用于创建单例外,枚举还可以用来实现策略模式。在这种情况下,每个枚举成员代表了一种具体的算法或行为,并实现了共同的接口。
```java
// 定义一个表示不同支付方式的枚举类型
public enum PaymentMethod {
CREDIT_CARD {
@Override
public boolean pay(double amount) {
System.out.println("信用卡付款:" + amount);
return true;
}
},
PAYPAL {
@Override
public boolean pay(double amount) {
System.out.println("PayPal付款:" + amount);
return true;
}
};
// 抽象方法定义了所有具体策略都应具备的行为
public abstract boolean pay(double amount);
}
// 使用示例
PaymentMethod method = PaymentMethod.CREDIT_CARD;
method.pay(99.9); // 输出:信用卡付款:99.9
```
这里展示了如何利用枚举来封装一组相互替换的算法族——即不同的支付手段,在运行时可以根据需求灵活切换使用的策略[^2]。
阅读全文