public class OrderStatusProcessor {
public void processOrderStatus(OrderStatus status) {
switch (status) {
case CREATED:
// 这里可以处理已创建状态的业务逻辑,比如记录日志等
System.out.println("订单已创建,暂不执行其他复杂逻辑");
break;
case PAID:
updateInventory();
sendShippingNotification();
break;
case SHIPPED:
// 这里可以处理已发货状态的业务逻辑,比如更新物流信息等
System.out.println("订单已发货,暂不执行其他复杂逻辑");
break;
case DELIVERED:
updateUserPoints();
markOrderCompleted();
break;
case CANCELED:
// 这里可以处理已取消状态的业务逻辑,比如退还库存等
System.out.println("订单已取消,暂不执行其他复杂逻辑");
break;
default:
System.out.println("未知的订单状态");
}
}
private void updateInventory() {
System.out.println("更新库存逻辑执行");
}
private void sendShippingNotification() {
System.out.println("发送发货通知逻辑执行");
}
private void updateUserPoints() {
System.out.println("更新用户积分逻辑执行");
}
private void markOrderCompleted() {
System.out.println("标记订单完成逻辑执行");
}
}
enum OrderStatus {
CREATED, PAID, SHIPPED, DELIVERED, CANCELED
}
代码设计思路
- 定义枚举类型:首先定义了
OrderStatus
枚举类型,包含CREATED
、PAID
、SHIPPED
、DELIVERED
、CANCELED
这几种订单状态。
- 定义处理类:
OrderStatusProcessor
类用于处理不同订单状态的业务逻辑。
processOrderStatus
方法:该方法接收一个OrderStatus
类型的参数,通过switch
语句判断订单状态,并执行相应的业务逻辑。
- 对于每个状态分支,调用特定的私有方法来完成具体的业务操作,如
updateInventory
更新库存,sendShippingNotification
发送发货通知等。这样使得代码结构清晰,易于维护和扩展。
- 对于每个状态分支,如果当前状态没有复杂业务逻辑,则简单打印提示信息。
default
分支用于处理未知的订单状态,同样打印提示信息。
- 私有方法:定义了
updateInventory
、sendShippingNotification
、updateUserPoints
、markOrderCompleted
这些私有方法,在实际应用中,这些方法会包含具体的业务实现,这里只是简单打印提示信息表示逻辑执行。