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 |