2015-08-13 23:54:40 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								layout: pattern
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								title: Execute Around
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								folder: execute-around
							 
						 
					
						
							
								
									
										
										
										
											2015-08-15 18:03:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								permalink: /patterns/execute-around/
							 
						 
					
						
							
								
									
										
										
										
											2016-08-30 15:10:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								pumlid: NSZ14G8n20NGLhI0XBlT865suoGa0n_NylNixSsxTvEHJTF7xGHsF8YShtfqdFdCK9TbK4ELDQcFl1ZizE8tbwRH3okR0NKBcXm_a7vK4bhOLreZXVnLJPzrvnnV
							 
						 
					
						
							
								
									
										
										
										
											2015-08-20 21:40:07 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								categories: Other
							 
						 
					
						
							
								
									
										
										
										
											2015-12-28 15:52:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								tags:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 -  Java
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 -  Difficulty-Beginner
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 -  Idiom
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 23:54:40 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-03 21:14:30 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Intent
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Execute Around idiom frees the user from certain actions that
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 23:54:40 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								should always be executed before and after the business method. A good example
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								of this is resource allocation and deallocation leaving the user to specify
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								only what to do with the resource.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-03 21:14:30 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Applicability
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Use the Execute Around idiom when
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 23:54:40 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-15 18:03:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  you use an API that requires methods to be called in pairs such as open/close or allocate/deallocate. 
						 
					
						
							
								
									
										
										
										
											2016-01-27 12:55:59 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-02-02 17:31:12 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Credits
  
						 
					
						
							
								
									
										
										
										
											2016-01-27 12:55:59 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  [Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions ](http://www.amazon.com/Functional-Programming-Java-Harnessing-Expressions/dp/1937785467/ref=sr_1_1 )