public class PercentageDiscountStrategy implements DiscountStrategy { private double discountPercentage; // 折扣百分比,例如0.1表示10%折扣 /** * 构造百分比折扣策略 * @param discountPercentage 折扣百分比(0-1之间的值) */ public PercentageDiscountStrategy(double discountPercentage) { if (discountPercentage < 0 || discountPercentage > 1) { throw new IllegalArgumentException("折扣百分比必须在0到1之间"); } this.discountPercentage = discountPercentage; } @Override public double calculateDiscount(Order order) { if (order == null) { return 0; } // 计算折扣金额:订单金额 * 折扣百分比 return order.getAmount() * discountPercentage; } @Override public String getDescription() { // 将百分比转换为整数表示,例如0.1转换为10% return (int)(discountPercentage * 100) + "%折扣"; } }