KISS

Regular Refactoring

Tip: Continuously improve the codebase by refactoring it to remove unnecessary complexity and improve clarity.

Before Refactoring:

public void ProcessOrders(List orders)
{
    foreach (var order in orders)
    {
        if (order.Status == OrderStatus.New)
        {
            ProcessNewOrder(order);
        }
        else if (order.Status == OrderStatus.Processing)
        {
            ProcessProcessingOrder(order);
        }
        else if (order.Status == OrderStatus.Completed)
        {
            ProcessCompletedOrder(order);
        }
    }
}

After Refactoring:

public void ProcessOrders(List orders)
{
    foreach (var order in orders)
    {
        ProcessOrder(order);
    }
}

private void ProcessOrder(Order order)
{
    switch (order.Status)
    {
        case OrderStatus.New:
            ProcessNewOrder(order);
            break;
        case OrderStatus.Processing:
            ProcessProcessingOrder(order);
            break;
        case OrderStatus.Completed:
            ProcessCompletedOrder(order);
            break;
        default:
            throw new InvalidOperationException("Unknown order status");
    }
}