all index.md files renamed to README.md for more compatibility with github
This commit is contained in:
		
							
								
								
									
										28
									
								
								specification/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								specification/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
---
 | 
			
		||||
layout: pattern
 | 
			
		||||
title: Specification
 | 
			
		||||
folder: specification
 | 
			
		||||
permalink: /patterns/specification/
 | 
			
		||||
categories: Behavioral
 | 
			
		||||
tags:
 | 
			
		||||
 - Java
 | 
			
		||||
 - Difficulty-Beginner
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## 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
 | 
			
		||||
* 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)
 | 
			
		||||
		Reference in New Issue
	
	Block a user