if/case conditionals can get really hairy in highly sophisticated business domains. Domain model inheritance can help remedy the problem, but you don't want to dump all logic variations in the same domain models. Strategy Pattern solves that problem by externalizing logic variations to separate classes outside the domain models. One difficulty with implementing Strategy Pattern is making domain models aware of newly added strategies without touching their code (Open/Closed Principle). Strategic solves that problem by supporting Strategy Pattern with automatic discovery of strategies and ability fetch the right strategy without conditionals. This allows you to make any domain model "strategic" by simply following a convention in the directory/namespace structure you create your strategies under so that the domain model automatically discovers all available strategies.