74 lines
2.2 KiB
Plaintext
74 lines
2.2 KiB
Plaintext
|
@startuml
|
||
|
package com.iluwatar.doubledispatch.constants {
|
||
|
class AppConstants {
|
||
|
+ HITS : String {static}
|
||
|
+ AppConstants()
|
||
|
}
|
||
|
}
|
||
|
package com.iluwatar.doubledispatch {
|
||
|
class App {
|
||
|
- LOGGER : Logger {static}
|
||
|
+ App()
|
||
|
+ main(args : String[]) {static}
|
||
|
}
|
||
|
class FlamingAsteroid {
|
||
|
+ FlamingAsteroid(left : int, top : int, right : int, bottom : int)
|
||
|
+ collision(gameObject : GameObject)
|
||
|
}
|
||
|
abstract class GameObject {
|
||
|
- damaged : boolean
|
||
|
- onFire : boolean
|
||
|
+ GameObject(left : int, top : int, right : int, bottom : int)
|
||
|
+ collision(GameObject) {abstract}
|
||
|
+ collisionResolve(FlamingAsteroid) {abstract}
|
||
|
+ collisionResolve(Meteoroid) {abstract}
|
||
|
+ collisionResolve(SpaceStationIss) {abstract}
|
||
|
+ collisionResolve(SpaceStationMir) {abstract}
|
||
|
+ isDamaged() : boolean
|
||
|
+ isOnFire() : boolean
|
||
|
+ setDamaged(damaged : boolean)
|
||
|
+ setOnFire(onFire : boolean)
|
||
|
+ toString() : String
|
||
|
}
|
||
|
class Meteoroid {
|
||
|
- LOGGER : Logger {static}
|
||
|
+ Meteoroid(left : int, top : int, right : int, bottom : int)
|
||
|
+ collision(gameObject : GameObject)
|
||
|
+ collisionResolve(asteroid : FlamingAsteroid)
|
||
|
+ collisionResolve(iss : SpaceStationIss)
|
||
|
+ collisionResolve(meteoroid : Meteoroid)
|
||
|
+ collisionResolve(mir : SpaceStationMir)
|
||
|
}
|
||
|
class Rectangle {
|
||
|
- bottom : int
|
||
|
- left : int
|
||
|
- right : int
|
||
|
- top : int
|
||
|
+ Rectangle(left : int, top : int, right : int, bottom : int)
|
||
|
+ getBottom() : int
|
||
|
+ getLeft() : int
|
||
|
+ getRight() : int
|
||
|
+ getTop() : int
|
||
|
~ intersectsWith(r : Rectangle) : boolean
|
||
|
+ toString() : String
|
||
|
}
|
||
|
class SpaceStationIss {
|
||
|
+ SpaceStationIss(left : int, top : int, right : int, bottom : int)
|
||
|
+ collision(gameObject : GameObject)
|
||
|
}
|
||
|
class SpaceStationMir {
|
||
|
- LOGGER : Logger {static}
|
||
|
+ SpaceStationMir(left : int, top : int, right : int, bottom : int)
|
||
|
+ collision(gameObject : GameObject)
|
||
|
+ collisionResolve(asteroid : FlamingAsteroid)
|
||
|
+ collisionResolve(iss : SpaceStationIss)
|
||
|
+ collisionResolve(meteoroid : Meteoroid)
|
||
|
+ collisionResolve(mir : SpaceStationMir)
|
||
|
}
|
||
|
}
|
||
|
FlamingAsteroid --|> Meteoroid
|
||
|
GameObject --|> Rectangle
|
||
|
Meteoroid --|> GameObject
|
||
|
SpaceStationIss --|> SpaceStationMir
|
||
|
SpaceStationMir --|> GameObject
|
||
|
@enduml
|