The specification pattern encapsulates business logic in it's own class. Sounds complicated, but let's see how easy it is. We also build a validation class to demonstrate how it can be useful.