El patrón Criteria permite filtrar colecciones de objetos según diversos criterios de forma desacoplada, permitiendo encadenar y reutilizar criterios mediante operaciones lógicas como AND y OR. Esto provee una forma extensible y legible de filtrar colecciones según lógica que puede cambiar. El patrón se implementa mediante interfaces y clases que representan cada criterio y operaciones entre ellos.