93 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!--
 | |
| 
 | |
|     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.
 | |
| 
 | |
| -->
 | |
| <!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>
 |