2015-08-13 23:54:40 +02:00
|
|
|
---
|
|
|
|
layout: pattern
|
|
|
|
title: Specification
|
|
|
|
folder: specification
|
2015-08-15 18:03:05 +02:00
|
|
|
permalink: /patterns/specification/
|
2015-08-20 21:40:07 +02:00
|
|
|
categories: Behavioral
|
|
|
|
tags: Java
|
2015-08-13 23:54:40 +02:00
|
|
|
---
|
|
|
|
|
|
|
|
**Intent:** Specification pattern separates the statement of how to match a
|
|
|
|
candidate, from the candidate object that it is matched against. As well as its
|
|
|
|
usefulness in selection, it is also valuable for validation and for building to
|
|
|
|
order
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
**Applicability:** Use the Specification pattern when
|
|
|
|
|
|
|
|
* you need to select a subset of objects based on some criteria, and to refresh the selection at various times
|
2015-08-15 18:03:05 +02:00
|
|
|
* you need to check that only suitable objects are used for a certain role (validation)
|