When there are several ways to do the same job, a growing if/switch puts all of them in one class that must change every time. Strategy puts each algorithm in its own class behind one interface, and the caller picks which to use. Reach for it for pricing rules, payment methods or slot allocation in a parking lot. If there are only two fixed variants a plain if is fine, and if the object switches its own behaviour as its status changes, that is State.