У меня есть этот служебный интерфейс, который должен быть реализован в ViewHolder RecyclerView, который запускает события пользовательского интерфейса.
interface ObservableMvpViewHolder<V> {
val listeners: List<V>
fun registerListener(listener:V)
fun unregisterListener (listener: V)
}
свойство listeners
похоже на контракт, поэтому я хочу обязать клиентов объявить его для хранения наблюдателей.
но когда я реализую этот интерфейс, я должен объявить геттер для этого свойства:
class AddItemViewHolderHolder(override val containerView: View) : ViewHolder(containerView), LayoutContainer, ObservableMvpViewHolder<AddItemViewHolderHolder.Listener> {
override val listeners: List<Listener>
get() = listeners
Я не хочу этого делать, чтобы не выставлять эту собственность наружу.
Я новичок в Kotlin, есть ли способ сделать это без объявления абстрактного класса?