Реализован генератор идентификаторов задач с использованием перечисления TaskIdGenerator для упрощения управления уникальными идентификаторами. Удалена статическая переменная nextId. Closes #5

This commit is contained in:
KamaSK 2025-05-20 20:51:52 +03:00
parent 2db26eb77a
commit a257a76f37
2 changed files with 32 additions and 30 deletions

View File

@ -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;
}

View File

@ -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) {
};
}
}