From 7aa394ec088a976ed36c7499ecb40db912015ac1 Mon Sep 17 00:00:00 2001 From: KamaSK Date: Sun, 25 May 2025 17:34:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=B0=20=D0=BE=D0=BE=D0=BF=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- todo/src/main/java/ru/kamask/pet/TodoApp.java | 9 ----- .../main/java/ru/kamask/pet/todo/TodoApp.java | 18 ++++++++++ .../ru/kamask/pet/todo/model/DataBuilder.java | 5 +++ .../ru/kamask/pet/todo/model/SimpleTask.java | 35 +++++++++++++++++++ .../java/ru/kamask/pet/todo/model/Task.java | 23 ++++++++++++ 5 files changed, 81 insertions(+), 9 deletions(-) delete mode 100644 todo/src/main/java/ru/kamask/pet/TodoApp.java create mode 100644 todo/src/main/java/ru/kamask/pet/todo/TodoApp.java create mode 100644 todo/src/main/java/ru/kamask/pet/todo/model/DataBuilder.java create mode 100644 todo/src/main/java/ru/kamask/pet/todo/model/SimpleTask.java create mode 100644 todo/src/main/java/ru/kamask/pet/todo/model/Task.java diff --git a/todo/src/main/java/ru/kamask/pet/TodoApp.java b/todo/src/main/java/ru/kamask/pet/TodoApp.java deleted file mode 100644 index e7996ce..0000000 --- a/todo/src/main/java/ru/kamask/pet/TodoApp.java +++ /dev/null @@ -1,9 +0,0 @@ -package ru.kamask.pet; - -public class TodoApp { - - public static void main(String[] args) { - - } - -} diff --git a/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java b/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java new file mode 100644 index 0000000..79fb305 --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java @@ -0,0 +1,18 @@ +package ru.kamask.pet.todo; + +import ru.kamask.pet.todo.model.SimpleTask; + +public class TodoApp { + + @SuppressWarnings("unused") + public static void main(String[] args) { + var task = new SimpleTask("TodoApp"); + System.out.println(task); + + task.markAsCompleted(); + + var taskData = task.data(); + System.out.println(taskData); + } + +} diff --git a/todo/src/main/java/ru/kamask/pet/todo/model/DataBuilder.java b/todo/src/main/java/ru/kamask/pet/todo/model/DataBuilder.java new file mode 100644 index 0000000..c911131 --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/model/DataBuilder.java @@ -0,0 +1,5 @@ +package ru.kamask.pet.todo.model; + +public interface DataBuilder { + T data(); +} diff --git a/todo/src/main/java/ru/kamask/pet/todo/model/SimpleTask.java b/todo/src/main/java/ru/kamask/pet/todo/model/SimpleTask.java new file mode 100644 index 0000000..a7206a4 --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/model/SimpleTask.java @@ -0,0 +1,35 @@ +package ru.kamask.pet.todo.model; + +public class SimpleTask extends Task implements DataBuilder { + private boolean done = false; + + public SimpleTask(String title) { + super(title); + } + + @Override + public void markAsCompleted() { + done(); + } + + @Override + public boolean isCompleted() { + return isDone(); + } + + void done() { + done = true; + } + + boolean isDone() { + return done; + } + + @Override + public Data data() { + return new Data(id, title, done); + } + + record Data(int id, String title, boolean done) { + } +} diff --git a/todo/src/main/java/ru/kamask/pet/todo/model/Task.java b/todo/src/main/java/ru/kamask/pet/todo/model/Task.java new file mode 100644 index 0000000..6b6678b --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/model/Task.java @@ -0,0 +1,23 @@ +package ru.kamask.pet.todo.model; + +public abstract class Task { + private static int nextId = 1; + + protected int id; + protected String title; + + Task(String title) { + this.id = nextId++; + this.title = title; + } + + @Override + public String toString() { + return String.format("Задача: id - %d, title: \"%s\"", id, title); + } + + abstract public void markAsCompleted(); + + abstract public boolean isCompleted(); + +}