Specification Pattern
In plain terms
Encapsulating business rules as combinable, reusable objects.
Going deeper
The Specification pattern represents a rule or criterion as an object that can be combined (and/or/not) and reused for validation or querying. Rules become composable units.
Under the hood
Keeps business rules out of scattered conditionals; specifications can drive queries or in-memory checks.
Examples
Complex validation, query building, business rules, DDD, filtering.
Think of it like...
Like building a custom filter by snapping together reusable criteria blocks.