39 lines
		
	
	
		
			879 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			879 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								@startuml
							 | 
						||
| 
								 | 
							
								package com.iluwatar.delegation.simple.printers {
							 | 
						||
| 
								 | 
							
								  class CanonPrinter {
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    + CanonPrinter()
							 | 
						||
| 
								 | 
							
								    + print(message : String)
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class EpsonPrinter {
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    + EpsonPrinter()
							 | 
						||
| 
								 | 
							
								    + print(message : String)
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class HpPrinter {
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    + HpPrinter()
							 | 
						||
| 
								 | 
							
								    + print(message : String)
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								package com.iluwatar.delegation.simple {
							 | 
						||
| 
								 | 
							
								  class App {
							 | 
						||
| 
								 | 
							
								    - MESSAGE_TO_PRINT : String {static}
							 | 
						||
| 
								 | 
							
								    + App()
							 | 
						||
| 
								 | 
							
								    + main(args : String[]) {static}
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  interface Printer {
							 | 
						||
| 
								 | 
							
								    + print(String) {abstract}
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class PrinterController {
							 | 
						||
| 
								 | 
							
								    - printer : Printer
							 | 
						||
| 
								 | 
							
								    + PrinterController(printer : Printer)
							 | 
						||
| 
								 | 
							
								    + print(message : String)
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								PrinterController -->  "-printer" Printer
							 | 
						||
| 
								 | 
							
								PrinterController ..|> Printer 
							 | 
						||
| 
								 | 
							
								CanonPrinter ..|> Printer 
							 | 
						||
| 
								 | 
							
								EpsonPrinter ..|> Printer 
							 | 
						||
| 
								 | 
							
								HpPrinter ..|> Printer 
							 | 
						||
| 
								 | 
							
								@enduml
							 |