mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-10-14 00:16:48 +00:00
[Scheduler Pattern] (Add) scheduler pattern
This commit is contained in:
1 parent
7a966a5786
commit
cd0c4db685
16 files changed
+543
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
@@ -0,0 +1,41 @@
|
||||
@startuml
|
||||
|
||||
class Task {
|
||||
-id: int
|
||||
-totalExecutionTime: int
|
||||
-priority: int
|
||||
--
|
||||
+Task(id: int, totalExecutionTime: int, priority: int)
|
||||
+Task(id: int, totalExecutionTime: int)
|
||||
+getId(): int
|
||||
+getTotalExecutionTime(): int
|
||||
+getPriority(): int
|
||||
}
|
||||
|
||||
interface TaskScheduler {
|
||||
+scheduleTask(task: Task): void
|
||||
+update(int deltaTime): void
|
||||
}
|
||||
|
||||
class FirstComeFirstServedScheduler extends TaskScheduler {}
|
||||
class PriorityScheduler extends TaskScheduler {}
|
||||
class RoundRobinScheduler extends TaskScheduler {}
|
||||
class ShortestRemainingTimeFirstScheduler extends TaskScheduler {}
|
||||
|
||||
class Simulator {
|
||||
-scheduler: TaskScheduler
|
||||
-Map<Integer, List<Task>> tasks
|
||||
-deltaTime: int
|
||||
-simulateTime: int
|
||||
-LinkedHashMap<Integer, Integer> taskCompletedOrder
|
||||
-elapsedTime: int
|
||||
--
|
||||
+Simulator(scheduler: TaskScheduler, tasks: Map<Integer, List<Task>>, deltaTime: int, simulateTime: int)
|
||||
+simulate(): LinkedHashMap<Integer, Integer>
|
||||
}
|
||||
|
||||
Task -- TaskScheduler : "1..*"
|
||||
TaskScheduler -- Simulator : "1"
|
||||
Simulator ..> Task : "1..*"
|
||||
|
||||
@enduml
|
||||
Reference in new issue
Block a user