The problem: For complex business logic with lots of conditions, we could certainly use one giant class with lots of ifs. But by doing this, the class would be highly coupled and with no cohesion. Consider using the Chain of Responsibility Pattern...