45 lines
1.0 KiB
Plaintext
45 lines
1.0 KiB
Plaintext
|
@startuml
|
||
|
package com.iluwatar.doublebuffer {
|
||
|
class App {
|
||
|
- LOGGER : Logger {static}
|
||
|
+ App()
|
||
|
+ main(args : String[]) {static}
|
||
|
- printBlackPixelCoordinate(buffer : Buffer) {static}
|
||
|
}
|
||
|
interface Buffer {
|
||
|
+ clear(int, int) {abstract}
|
||
|
+ clearAll() {abstract}
|
||
|
+ draw(int, int) {abstract}
|
||
|
+ getPixels() : Pixel[] {abstract}
|
||
|
}
|
||
|
class FrameBuffer {
|
||
|
+ HEIGHT : int {static}
|
||
|
+ WIDTH : int {static}
|
||
|
- pixels : Pixel[]
|
||
|
+ FrameBuffer()
|
||
|
+ clear(x : int, y : int)
|
||
|
+ clearAll()
|
||
|
+ draw(x : int, y : int)
|
||
|
- getIndex(x : int, y : int) : int
|
||
|
+ getPixels() : Pixel[]
|
||
|
}
|
||
|
enum Pixel {
|
||
|
+ BLACK {static}
|
||
|
+ WHITE {static}
|
||
|
- color : int
|
||
|
+ valueOf(name : String) : Pixel {static}
|
||
|
+ values() : Pixel[] {static}
|
||
|
}
|
||
|
class Scene {
|
||
|
- LOGGER : Logger {static}
|
||
|
- current : int
|
||
|
- frameBuffers : Buffer[]
|
||
|
- next : int
|
||
|
+ Scene()
|
||
|
+ draw(coordinateList : List<Pair<Integer, Integer>>)
|
||
|
+ getBuffer() : Buffer
|
||
|
- swap()
|
||
|
}
|
||
|
}
|
||
|
FrameBuffer ..|> Buffer
|
||
|
@enduml
|