Conversation
| archives.forEachIndexed { index, archive -> println("${index + 1}. ${archive.name}") } | ||
| } | ||
| println("0. Создать архив") | ||
| println("выход. Выйти") |
There was a problem hiding this comment.
🍏 Лучше выход тоже обозначить цифрой, а не строкой "выход". Так пользователю программы удобнее будет с ней работать
| override fun handlePick(pick: String) { | ||
| } |
There was a problem hiding this comment.
🍏 Если не всем наследникам класса Menu нужно переопределять этот метод, можно его сделать open, а не abstract. Тогда можно будет удалить пустые реализации в наследниках.
Вот так будет в Menu:
protected open fun handlePick(pick: String) = Unit
Unit в данном случае будет аналогом { }
|
|
||
| data class Archive( | ||
| val name: String, | ||
| val notes: MutableList<Note> = mutableListOf()) |
There was a problem hiding this comment.
🍏 В Kotlin принят немного другой стиль форматирования кода, быстро отформатировать код в Android Studio можно следующей комбинацией клавиш: в Windows Ctrl + Alt + L , в MacOs ⌘ + ⌥ + L
|
|
||
| data class Note( | ||
| val title: String, | ||
| val content: String) |
There was a problem hiding this comment.
🍏 В Kotlin принят немного другой стиль форматирования кода, быстро отформатировать код в Android Studio можно следующей комбинацией клавиш: в Windows Ctrl + Alt + L , в MacOs ⌘ + ⌥ + L
| import data.Note | ||
|
|
||
| class MenuNote(private val archive: Archive) : Menu<Note>(archive.notes) { | ||
| private val notes = items |
There was a problem hiding this comment.
🍏 Кажется, нет плюсов от параметризации Menu и передачи айтемов в Menu, если ты их в Menu никак не используешь.
Если все-таки хочешь оставить параметризацию, то нужно удалить private val notes = items тк по сути создается вторая коллекция, хотя ты можешь просто обращаться не к notes, а к items
| } | ||
| } | ||
|
|
||
| fun readLine(prompt: String): String { |
There was a problem hiding this comment.
🍏 По кодстайлу лучше сначала в файле все публичные функции, а ниже приватные
| private val menuManager = MenuManager() | ||
|
|
||
| init { | ||
| menuManager.menuAddItem("Создать заметку") { MenuNoteCreate(archive.notes).show() } | ||
| } | ||
|
|
| override fun show() { | ||
| while (true) { | ||
| menuDisplay() | ||
| val pick = getUserPick() | ||
| if (pick == "0") break | ||
| handlePick(pick) | ||
| } | ||
| } |
There was a problem hiding this comment.
🍏 В этом методе точно такой же код, что и в родительском классе Menu, поэтому его можно удалить отсюда. show отработает, даже если будет только в родительском классе

No description provided.