Реализован генератор идентификаторов задач с использованием перечисления TaskIdGenerator для упрощения управления уникальными идентификаторами. Удалена статическая переменная nextId. Closes #5
This commit is contained in:
parent
2db26eb77a
commit
a257a76f37
@ -3,8 +3,17 @@ package ru.kamask.pet;
|
||||
import java.time.LocalDate;
|
||||
|
||||
class Task {
|
||||
private static int nextId;
|
||||
static int taskCount;
|
||||
static int taskCount = 0;
|
||||
|
||||
enum TaskIdGenerator {
|
||||
INSTANCE;
|
||||
|
||||
private int currentId = 1;
|
||||
|
||||
int nextId() {
|
||||
return currentId++;
|
||||
}
|
||||
}
|
||||
|
||||
private int id;
|
||||
private String title;
|
||||
@ -12,19 +21,12 @@ class Task {
|
||||
private TaskStatus status;
|
||||
private LocalDate createdAt;
|
||||
|
||||
static {
|
||||
taskCount = 0;
|
||||
nextId = 0;
|
||||
}
|
||||
|
||||
{
|
||||
id = ++nextId;
|
||||
Task(String title, String description) {
|
||||
id = TaskIdGenerator.INSTANCE.nextId();
|
||||
status = TaskStatus.NEW;
|
||||
createdAt = LocalDate.now();
|
||||
taskCount++;
|
||||
}
|
||||
|
||||
Task(String title, String description) {
|
||||
this.title = title;
|
||||
this.description = description;
|
||||
};
|
||||
@ -33,6 +35,14 @@ class Task {
|
||||
System.out.println("Колличество дел: " + taskCount);
|
||||
}
|
||||
|
||||
int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
boolean isCompleted() {
|
||||
return status == TaskStatus.COMPLETED;
|
||||
}
|
||||
@ -49,14 +59,6 @@ class Task {
|
||||
status = TaskStatus.CANCELLED;
|
||||
}
|
||||
|
||||
int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
TaskStatus getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
@ -168,6 +168,17 @@ public class TodoApp {
|
||||
} while (true);
|
||||
}
|
||||
|
||||
interface TaskAction {
|
||||
default void execute(Task task) {
|
||||
};
|
||||
|
||||
default void start(Task task) {
|
||||
};
|
||||
|
||||
default void cancel(Task task) {
|
||||
};
|
||||
}
|
||||
|
||||
private class TaskManager {
|
||||
void addTask(Task task) {
|
||||
tasks[tasksCounter++] = task;
|
||||
@ -236,15 +247,4 @@ public class TodoApp {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
interface TaskAction {
|
||||
default void execute(Task task) {
|
||||
};
|
||||
|
||||
default void start(Task task) {
|
||||
};
|
||||
|
||||
default void cancel(Task task) {
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user