58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @startuml
 | |
| package com.iluwatar.bridge {
 | |
|   class App {
 | |
|     - LOGGER : Logger {static}
 | |
|     + App()
 | |
|     + main(args : String[]) {static}
 | |
|   }
 | |
|   interface Enchantment {
 | |
|     + apply() {abstract}
 | |
|     + onActivate() {abstract}
 | |
|     + onDeactivate() {abstract}
 | |
|   }
 | |
|   class FlyingEnchantment {
 | |
|     - LOGGER : Logger {static}
 | |
|     + FlyingEnchantment()
 | |
|     + apply()
 | |
|     + onActivate()
 | |
|     + onDeactivate()
 | |
|   }
 | |
|   class Hammer {
 | |
|     - LOGGER : Logger {static}
 | |
|     - enchantment : Enchantment
 | |
|     + Hammer(enchantment : Enchantment)
 | |
|     + getEnchantment() : Enchantment
 | |
|     + swing()
 | |
|     + unwield()
 | |
|     + wield()
 | |
|   }
 | |
|   class SoulEatingEnchantment {
 | |
|     - LOGGER : Logger {static}
 | |
|     + SoulEatingEnchantment()
 | |
|     + apply()
 | |
|     + onActivate()
 | |
|     + onDeactivate()
 | |
|   }
 | |
|   class Sword {
 | |
|     - LOGGER : Logger {static}
 | |
|     - enchantment : Enchantment
 | |
|     + Sword(enchantment : Enchantment)
 | |
|     + getEnchantment() : Enchantment
 | |
|     + swing()
 | |
|     + unwield()
 | |
|     + wield()
 | |
|   }
 | |
|   interface Weapon {
 | |
|     + getEnchantment() : Enchantment {abstract}
 | |
|     + swing() {abstract}
 | |
|     + unwield() {abstract}
 | |
|     + wield() {abstract}
 | |
|   }
 | |
| }
 | |
| Sword -->  "-enchantment" Enchantment
 | |
| Hammer -->  "-enchantment" Enchantment
 | |
| FlyingEnchantment ..|> Enchantment 
 | |
| Hammer ..|> Weapon 
 | |
| SoulEatingEnchantment ..|> Enchantment 
 | |
| Sword ..|> Weapon 
 | |
| @enduml |