| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  | @startuml | 
					
						
							|  |  |  | package com.iluwatar.dependency.injection { | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  |   class AdvancedWizard { | 
					
						
							|  |  |  |     - tobacco : Tobacco | 
					
						
							|  |  |  |     + AdvancedWizard(tobacco : Tobacco) | 
					
						
							|  |  |  |     + smoke() | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  |   interface Wizard { | 
					
						
							|  |  |  |     + smoke() {abstract} | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  |   class RivendellTobacco { | 
					
						
							|  |  |  |     + RivendellTobacco() | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   class SimpleWizard { | 
					
						
							|  |  |  |     - tobacco : OldTobyTobacco | 
					
						
							|  |  |  |     + SimpleWizard() | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  |     + smoke() | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   class OldTobyTobacco { | 
					
						
							|  |  |  |     + OldTobyTobacco() | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  |   class SecondBreakfastTobacco { | 
					
						
							|  |  |  |     + SecondBreakfastTobacco() | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  |   } | 
					
						
							|  |  |  |   class App { | 
					
						
							|  |  |  |     + App() | 
					
						
							|  |  |  |     + main(args : String[]) {static} | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  |   abstract class Tobacco { | 
					
						
							|  |  |  |     + Tobacco() | 
					
						
							|  |  |  |     + smoke(wizard : Wizard) | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  |   class GuiceWizard { | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  |     - tobacco : Tobacco | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  |     + GuiceWizard(tobacco : Tobacco) | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  |     + smoke() | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | SimpleWizard -->  "-tobacco" OldTobyTobacco | 
					
						
							|  |  |  | AdvancedWizard -->  "-tobacco" Tobacco | 
					
						
							|  |  |  | GuiceWizard -->  "-tobacco" Tobacco | 
					
						
							|  |  |  | AdvancedWizard ..|> Wizard  | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  | RivendellTobacco --|> Tobacco  | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  | SimpleWizard ..|> Wizard  | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  | OldTobyTobacco --|> Tobacco  | 
					
						
							|  |  |  | SecondBreakfastTobacco --|> Tobacco  | 
					
						
							|  |  |  | GuiceWizard ..|> Wizard  | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  | @enduml |