105 lines
2.5 KiB
Plaintext
105 lines
2.5 KiB
Plaintext
@startuml
|
|
package com.iluwatar.prototype {
|
|
class App {
|
|
- LOGGER : Logger {static}
|
|
+ App()
|
|
+ main(args : String[]) {static}
|
|
}
|
|
abstract class Beast {
|
|
+ Beast()
|
|
+ Beast(source : Beast)
|
|
+ copy() : Beast {abstract}
|
|
+ equals(obj : Object) : boolean
|
|
}
|
|
class ElfBeast {
|
|
- helpType : String
|
|
+ ElfBeast(elfBeast : ElfBeast)
|
|
+ ElfBeast(helpType : String)
|
|
+ copy() : ElfBeast
|
|
+ equals(obj : Object) : boolean
|
|
+ toString() : String
|
|
}
|
|
class ElfMage {
|
|
- helpType : String
|
|
+ ElfMage(elfMage : ElfMage)
|
|
+ ElfMage(helpType : String)
|
|
+ copy() : ElfMage
|
|
+ equals(obj : Object) : boolean
|
|
+ toString() : String
|
|
}
|
|
class ElfWarlord {
|
|
- helpType : String
|
|
+ ElfWarlord(elfWarlord : ElfWarlord)
|
|
+ ElfWarlord(helpType : String)
|
|
+ copy() : ElfWarlord
|
|
+ equals(obj : Object) : boolean
|
|
+ toString() : String
|
|
}
|
|
interface HeroFactory {
|
|
+ createBeast() : Beast {abstract}
|
|
+ createMage() : Mage {abstract}
|
|
+ createWarlord() : Warlord {abstract}
|
|
}
|
|
class HeroFactoryImpl {
|
|
- beast : Beast
|
|
- mage : Mage
|
|
- warlord : Warlord
|
|
+ HeroFactoryImpl(mage : Mage, warlord : Warlord, beast : Beast)
|
|
+ createBeast() : Beast
|
|
+ createMage() : Mage
|
|
+ createWarlord() : Warlord
|
|
}
|
|
abstract class Mage {
|
|
+ Mage()
|
|
+ Mage(source : Mage)
|
|
+ copy() : Mage {abstract}
|
|
+ equals(obj : Object) : boolean
|
|
}
|
|
class OrcBeast {
|
|
- weapon : String
|
|
+ OrcBeast(orcBeast : OrcBeast)
|
|
+ OrcBeast(weapon : String)
|
|
+ copy() : OrcBeast
|
|
+ equals(obj : Object) : boolean
|
|
+ toString() : String
|
|
}
|
|
class OrcMage {
|
|
- weapon : String
|
|
+ OrcMage(orcMage : OrcMage)
|
|
+ OrcMage(weapon : String)
|
|
+ copy() : OrcMage
|
|
+ equals(obj : Object) : boolean
|
|
+ toString() : String
|
|
}
|
|
class OrcWarlord {
|
|
- weapon : String
|
|
+ OrcWarlord(orcWarlord : OrcWarlord)
|
|
+ OrcWarlord(weapon : String)
|
|
+ copy() : OrcWarlord
|
|
+ equals(obj : Object) : boolean
|
|
+ toString() : String
|
|
}
|
|
interface Prototype {
|
|
+ copy() : Object {abstract}
|
|
}
|
|
abstract class Warlord {
|
|
+ Warlord()
|
|
+ Warlord(source : Warlord)
|
|
+ copy() : Warlord {abstract}
|
|
+ equals(obj : Object) : boolean
|
|
}
|
|
}
|
|
HeroFactoryImpl --> "-beast" Beast
|
|
HeroFactoryImpl --> "-warlord" Warlord
|
|
HeroFactoryImpl --> "-mage" Mage
|
|
Beast ..|> Prototype
|
|
ElfBeast --|> Beast
|
|
ElfMage --|> Mage
|
|
ElfWarlord --|> Warlord
|
|
HeroFactoryImpl ..|> HeroFactory
|
|
Mage ..|> Prototype
|
|
OrcBeast --|> Beast
|
|
OrcMage --|> Mage
|
|
OrcWarlord --|> Warlord
|
|
Warlord ..|> Prototype
|
|
@enduml |