Вам не нужно делать это таким образом.
interface StateInterface {
val variationTypes: List<VariationType>
get() = emptyList()
}
object EMPTY : StateInterface
Работало бы нормально, но автор решил, что они хотят, чтобы использование читало StateInterface.EMPTY
, а не просто EMPTY
.
Одним из преимуществ или причин выбора этого способа является то, что после ввода StateInterface.
в завершении кода появляется EMPTY
, что облегчает поиск.
Другое преимущество читабельности заключается в том, что любому, кто ссылается на StateInterface.EMPTY
, не нужна дополнительная строка import
, которая была бы нужна, если бы это был не вложенный объект.
import com.example.StateInterface
val x = StateInterface.EMPTY
Этот бит open val stateInterface: StateInterface = StateInterface.EMPTY
это свойство объекта.Это open
, поэтому реализации потомков могут override
это.Если они этого не делают, StateInterface.EMPTY
будет значением этого свойства.