用Java写一个枚举枚举策略的代码
时间: 2023-10-31 12:16:19 浏览: 44
这是一个简单的示例代码,演示了如何使用Java枚举来实现策略模式:
```java
public enum DiscountStrategy {
NO_DISCOUNT {
@Override
public double applyDiscount(double price) {
return price;
}
},
PERCENT_OFF_10 {
@Override
public double applyDiscount(double price) {
return price * 0.9;
}
},
PERCENT_OFF_20 {
@Override
public double applyDiscount(double price) {
return price * 0.8;
}
},
PERCENT_OFF_30 {
@Override
public double applyDiscount(double price) {
return price * 0.7;
}
};
public abstract double applyDiscount(double price);
}
```
这个枚举定义了4种不同的折扣策略,分别是:
- NO_DISCOUNT:不打折
- PERCENT_OFF_10:打9折
- PERCENT_OFF_20:打8折
- PERCENT_OFF_30:打7折
每个枚举实例都实现了`applyDiscount`方法,该方法接受一个价格参数并返回应用该折扣策略后的价格。
使用时,可以将枚举实例作为参数传递给需要应用折扣的方法,例如:
```java
public double calculateDiscountedPrice(double price, DiscountStrategy strategy) {
return strategy.applyDiscount(price);
}
double price = 100.0;
double discountedPrice = calculateDiscountedPrice(price, DiscountStrategy.PERCENT_OFF_20);
System.out.println("Discounted price: " + discountedPrice);
```
输出:
```
Discounted price: 80.0
```