100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | @startuml | ||
|  | package com.iluwatar.builder { | ||
|  |   class App { | ||
|  |     - LOGGER : Logger {static} | ||
|  |     + App() | ||
|  |     + main(args : String[]) {static} | ||
|  |   } | ||
|  |   enum Armor { | ||
|  |     + CHAIN_MAIL {static} | ||
|  |     + CLOTHES {static} | ||
|  |     + LEATHER {static} | ||
|  |     + PLATE_MAIL {static} | ||
|  |     - title : String | ||
|  |     + toString() : String | ||
|  |     + valueOf(name : String) : Armor {static} | ||
|  |     + values() : Armor[] {static} | ||
|  |   } | ||
|  |   enum HairColor { | ||
|  |     + BLACK {static} | ||
|  |     + BLOND {static} | ||
|  |     + BROWN {static} | ||
|  |     + RED {static} | ||
|  |     + WHITE {static} | ||
|  |     + toString() : String | ||
|  |     + valueOf(name : String) : HairColor {static} | ||
|  |     + values() : HairColor[] {static} | ||
|  |   } | ||
|  |   enum HairType { | ||
|  |     + BALD {static} | ||
|  |     + CURLY {static} | ||
|  |     + LONG_CURLY {static} | ||
|  |     + LONG_STRAIGHT {static} | ||
|  |     + SHORT {static} | ||
|  |     - title : String | ||
|  |     + toString() : String | ||
|  |     + valueOf(name : String) : HairType {static} | ||
|  |     + values() : HairType[] {static} | ||
|  |   } | ||
|  |   class Hero { | ||
|  |     - armor : Armor | ||
|  |     - hairColor : HairColor | ||
|  |     - hairType : HairType | ||
|  |     - name : String | ||
|  |     - profession : Profession | ||
|  |     - weapon : Weapon | ||
|  |     - Hero(builder : Builder) | ||
|  |     + getArmor() : Armor | ||
|  |     + getHairColor() : HairColor | ||
|  |     + getHairType() : HairType | ||
|  |     + getName() : String | ||
|  |     + getProfession() : Profession | ||
|  |     + getWeapon() : Weapon | ||
|  |     + toString() : String | ||
|  |   } | ||
|  |   class Builder { | ||
|  |     - armor : Armor | ||
|  |     - hairColor : HairColor | ||
|  |     - hairType : HairType | ||
|  |     - name : String | ||
|  |     - profession : Profession | ||
|  |     - weapon : Weapon | ||
|  |     + Builder(profession : Profession, name : String) | ||
|  |     + build() : Hero | ||
|  |     + withArmor(armor : Armor) : Builder | ||
|  |     + withHairColor(hairColor : HairColor) : Builder | ||
|  |     + withHairType(hairType : HairType) : Builder | ||
|  |     + withWeapon(weapon : Weapon) : Builder | ||
|  |   } | ||
|  |   enum Profession { | ||
|  |     + MAGE {static} | ||
|  |     + PRIEST {static} | ||
|  |     + THIEF {static} | ||
|  |     + WARRIOR {static} | ||
|  |     + toString() : String | ||
|  |     + valueOf(name : String) : Profession {static} | ||
|  |     + values() : Profession[] {static} | ||
|  |   } | ||
|  |   enum Weapon { | ||
|  |     + AXE {static} | ||
|  |     + BOW {static} | ||
|  |     + DAGGER {static} | ||
|  |     + SWORD {static} | ||
|  |     + WARHAMMER {static} | ||
|  |     + toString() : String | ||
|  |     + valueOf(name : String) : Weapon {static} | ||
|  |     + values() : Weapon[] {static} | ||
|  |   } | ||
|  | } | ||
|  | Hero -->  "-profession" Profession | ||
|  | Builder ..+ Hero | ||
|  | Hero -->  "-armor" Armor | ||
|  | Builder -->  "-hairColor" HairColor | ||
|  | Builder -->  "-weapon" Weapon | ||
|  | Builder -->  "-hairType" HairType | ||
|  | Hero -->  "-hairColor" HairColor | ||
|  | Builder -->  "-profession" Profession | ||
|  | Hero -->  "-weapon" Weapon | ||
|  | Hero -->  "-hairType" HairType | ||
|  | Builder -->  "-armor" Armor | ||
|  | @enduml |