Определите черту с помощью метода "getter":
черта Foo {
Def bar: T
}
Определите класс, который расширяет эту черту и который имеет вашу переменную
закрытый класс FooImpl (var bar: T) расширяет Foo
Ограничьте видимость этого класса соответствующим образом.
Наличие выделенного интерфейса позволяет также использовать несколько классов реализации во время выполнения, например, для более эффективного покрытия особых случаев, отложенной загрузки и т. д.