Мне интересно, каков наилучший способ структурировать функциональный код в Kotlin.
Я не хочу создавать ненужные объекты (и помещать функции в закрытую область), чтобы группировать мои функции.Я слышал, что могу группировать функции по пакетам и помещать их на верхний уровень пакета.Я также видел в библиотеке Arrow, что функции сгруппированы в сопутствующие объекты интерфейса как функции расширения, и это выглядит лучше всего, за исключением того факта, что мне нужно создать сопутствующий объект.
Способ объекта:
object Container {
fun myFunc() = ...
}
...
Container.myFunc()
Способ упаковки:
package myPackage
fun myFunc() = ...
...
myPackage.myFunc()
Способ стрелки:
interface Container {
companion object {
fun Container.myfunc() = ...
}
}
...
Container.myFunc()
Каков наилучший способ структурировать мои функции и сгруппировать их с помощью Kotlin?Я хочу сохранить чистый функциональный стиль, избегать создания каких-либо объектов и иметь возможность легко переходить к функциям по пространствам имен, таким как:
Person.Repository.getById(id: UUID)