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 |