那如果上面的代码没有用策略模式的话是怎么实现的呢?
时间: 2024-03-17 07:43:36 浏览: 39
策略模式代码实现
如果不使用策略模式,可能会使用if-else语句来实现折扣计算,代码可能会类似于下面的样子:
```java
public class DiscountCalculator {
public static void main(String[] args) {
int userType = 2; // 假设当前用户是VIP用户
double price = 100.0; // 商品原价
double discountPrice;
if (userType == 1) {
// VIP1折扣
discountPrice = price * 0.9;
} else if (userType == 2) {
// VIP2折扣
discountPrice = price * 0.8;
} else if (userType == 3) {
// VIP3折扣
discountPrice = price * 0.7;
} else if (userType == 4) {
// 新用户优惠券
discountPrice = price > 10 ? price - 10 : 0;
} else {
// 普通用户没有折扣
discountPrice = price;
}
System.out.println("折扣价格:" + discountPrice);
}
}
```
在这个示例中,我们使用了if-else语句来判断用户类型,然后根据不同的用户类型计算折扣价格。如果需要添加新的折扣策略,我们需要修改原有的代码逻辑,增加新的if-else分支。这样一来,代码的可维护性和可扩展性就会变得很差。而且,如果有多个地方都需要计算折扣价格,我们就需要在多个地方都修改if-else语句,这样会导致代码的重复和冗余。
因此,使用策略模式可以有效地避免这些问题,提高代码的可维护性和可扩展性。
阅读全文