| 
									
										
										
										
											2017-02-11 21:46:56 +02:00
										 |  |  | <!--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The MIT License | 
					
						
							|  |  |  |     Copyright (c) 2014 Ilkka Seppälä | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Permission is hereby granted, free of charge, to any person obtaining a copy | 
					
						
							|  |  |  |     of this software and associated documentation files (the "Software"), to deal | 
					
						
							|  |  |  |     in the Software without restriction, including without limitation the rights | 
					
						
							|  |  |  |     to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | 
					
						
							|  |  |  |     copies of the Software, and to permit persons to whom the Software is | 
					
						
							|  |  |  |     furnished to do so, subject to the following conditions: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The above copyright notice and this permission notice shall be included in | 
					
						
							|  |  |  |     all copies or substantial portions of the Software. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | 
					
						
							|  |  |  |     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 
					
						
							|  |  |  |     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | 
					
						
							|  |  |  |     AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | 
					
						
							|  |  |  |     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | 
					
						
							|  |  |  |     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | 
					
						
							|  |  |  |     THE SOFTWARE. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --> | 
					
						
							| 
									
										
										
										
											2016-12-26 20:05:38 +02:00
										 |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  | <html> | 
					
						
							|  |  |  |   <head> | 
					
						
							|  |  |  |     <title>Title</title> | 
					
						
							|  |  |  |     <meta charset="utf-8"> | 
					
						
							|  |  |  |     <style> | 
					
						
							|  |  |  |       @import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz); | 
					
						
							|  |  |  |       @import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic); | 
					
						
							|  |  |  |       @import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       body { font-family: 'Droid Serif'; } | 
					
						
							|  |  |  |       h1, h2, h3 { | 
					
						
							|  |  |  |         font-family: 'Yanone Kaffeesatz'; | 
					
						
							|  |  |  |         font-weight: normal; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       .remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; } | 
					
						
							|  |  |  |     </style> | 
					
						
							|  |  |  |   </head> | 
					
						
							|  |  |  |   <body> | 
					
						
							|  |  |  |     <textarea id="source"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class: center, middle | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Proxy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Also known as | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * Surrogate | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Intent | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * Provide a surrogate or placeholder for another object to control access to it. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Applicability | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * Protection proxy limits access to the real subject. | 
					
						
							|  |  |  | * Virtual proxies are used when an object is expensive to instantiate. | 
					
						
							|  |  |  | * Caching proxies are used to cache expensive calls to the real subject. | 
					
						
							|  |  |  | * Remote proxies are used in distributed object communication. | 
					
						
							|  |  |  | * Smart proxies are used to implement reference counting and log calls to the object. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Diagram | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .center[] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Tutorials | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * Blog http://java-design-patterns.com/blog/controlling-access-with-proxy-pattern/ | 
					
						
							|  |  |  | * Source code http://java-design-patterns.com/patterns/proxy/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     </textarea> | 
					
						
							|  |  |  |     <script src="https://gnab.github.io/remark/downloads/remark-latest.min.js"> | 
					
						
							|  |  |  |     </script> | 
					
						
							|  |  |  |     <script> | 
					
						
							|  |  |  |       var slideshow = remark.create(); | 
					
						
							|  |  |  |     </script> | 
					
						
							|  |  |  |   </body> | 
					
						
							|  |  |  | </html> |