48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
@startuml
 | 
						|
package com.iluwatar.dependency.injection {
 | 
						|
  class AdvancedWizard {
 | 
						|
    - tobacco : Tobacco
 | 
						|
    + AdvancedWizard(tobacco : Tobacco)
 | 
						|
    + smoke()
 | 
						|
  }
 | 
						|
  interface Wizard {
 | 
						|
    + smoke() {abstract}
 | 
						|
  }
 | 
						|
  class RivendellTobacco {
 | 
						|
    + RivendellTobacco()
 | 
						|
  }
 | 
						|
  class SimpleWizard {
 | 
						|
    - tobacco : OldTobyTobacco
 | 
						|
    + SimpleWizard()
 | 
						|
    + smoke()
 | 
						|
  }
 | 
						|
  class OldTobyTobacco {
 | 
						|
    + OldTobyTobacco()
 | 
						|
  }
 | 
						|
  class SecondBreakfastTobacco {
 | 
						|
    + SecondBreakfastTobacco()
 | 
						|
  }
 | 
						|
  class App {
 | 
						|
    + App()
 | 
						|
    + main(args : String[]) {static}
 | 
						|
  }
 | 
						|
  abstract class Tobacco {
 | 
						|
    + Tobacco()
 | 
						|
    + smoke(wizard : Wizard)
 | 
						|
  }
 | 
						|
  class GuiceWizard {
 | 
						|
    - tobacco : Tobacco
 | 
						|
    + GuiceWizard(tobacco : Tobacco)
 | 
						|
    + smoke()
 | 
						|
  }
 | 
						|
}
 | 
						|
SimpleWizard -->  "-tobacco" OldTobyTobacco
 | 
						|
AdvancedWizard -->  "-tobacco" Tobacco
 | 
						|
GuiceWizard -->  "-tobacco" Tobacco
 | 
						|
AdvancedWizard ..|> Wizard 
 | 
						|
RivendellTobacco --|> Tobacco 
 | 
						|
SimpleWizard ..|> Wizard 
 | 
						|
OldTobyTobacco --|> Tobacco 
 | 
						|
SecondBreakfastTobacco --|> Tobacco 
 | 
						|
GuiceWizard ..|> Wizard 
 | 
						|
@enduml |