SRP - Principle of Single Responsibility
Single Responsibility Principle (SRP), or, Principle of Single Responsibility. This principle says that classes must be cohesive, that is, have a single responsibility. Classes thus tend to be more reusable, simpler, and propagate fewer changes to the rest of the system.
Therefore:
- Add Item
- Apply Discount
- Save Data
- Reschedule Delivery
- Cancel
The Cancel method is part of the order.
The ApplyDiscount method is part of the order.
The SaveData method is part of the order, as long as it is specifically in the order.
The AddItem method is part of the order, as long as it is specifically in the order.
ReprogramDelivery violates, this method should be within the delivery class, with the request related, not within the request.