From a257a76f376f8e7f14a828cc46ac7199f1695368 Mon Sep 17 00:00:00 2001 From: KamaSK Date: Tue, 20 May 2025 20:51:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=20=D0=B8=D0=B4=D0=B5=D0=BD=D1=82=D0=B8=D1=84=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=D1=82=D0=BE=D1=80=D0=BE=D0=B2=20=D0=B7=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D1=87=20=D1=81=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D1=87=D0=B8=D1=81=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?TaskIdGenerator=20=D0=B4=D0=BB=D1=8F=20=D1=83=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=83=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=83=D0=BD=D0=B8=D0=BA=D0=B0?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D1=8B=D0=BC=D0=B8=20=D0=B8=D0=B4=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B8=D1=84=D0=B8=D0=BA=D0=B0=D1=82=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D0=BC=D0=B8.=20=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B0=20?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D0=B0?= =?UTF-8?q?=D1=8F=20nextId.=20Closes=20#5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- todo/src/main/java/ru/kamask/pet/Task.java | 40 ++++++++++--------- todo/src/main/java/ru/kamask/pet/TodoApp.java | 22 +++++----- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/todo/src/main/java/ru/kamask/pet/Task.java b/todo/src/main/java/ru/kamask/pet/Task.java index f6f6a4f..40ab7c8 100644 --- a/todo/src/main/java/ru/kamask/pet/Task.java +++ b/todo/src/main/java/ru/kamask/pet/Task.java @@ -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; } diff --git a/todo/src/main/java/ru/kamask/pet/TodoApp.java b/todo/src/main/java/ru/kamask/pet/TodoApp.java index 601e3b0..42ba9b7 100644 --- a/todo/src/main/java/ru/kamask/pet/TodoApp.java +++ b/todo/src/main/java/ru/kamask/pet/TodoApp.java @@ -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) { - }; - } }