Files
java-design-patterns/specification/index.md
T

29 lines
800 B
Markdown
Raw Normal View History

2015-08-13 23:54:40 +02:00
---
layout: pattern
title: Specification
folder: specification
permalink: /patterns/specification/
2015-08-20 21:40:07 +02:00
categories: Behavioral
2015-12-28 15:52:44 +02:00
tags:
- Java
- Difficulty-Beginner
2015-08-13 23:54:40 +02:00
---
## Intent
Specification pattern separates the statement of how to match a
2015-08-13 23:54:40 +02:00
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
![alt text](./etc/specification.png "Specification")
## Applicability
Use the Specification pattern when
2015-08-13 23:54:40 +02:00
* you need to select a subset of objects based on some criteria, and to refresh the selection at various times
* you need to check that only suitable objects are used for a certain role (validation)
## Credits
* [Martin Fowler - Specifications](http://martinfowler.com/apsupp/spec.pdf)