Я просто изучаю Kotlin о модели MVP. после того, как я сделал класс MainPresenter, я подключился к интерфейсу, mainContract и я столкнулся с проблемой. Я исправил это, но я не могу объяснить это сам, поэтому можете ли вы объяснить, почему я должен добавить «частное»?
MainPresenter
class mainPresenter : mainContract.Presenter {
private lateinit var mainModel: mainModel
private lateinit var view: mainContract.View
// here's private is that i ask u
override fun setView(view: mainContract.View) {
}
override fun setModel(model: mainModel) {
}
override fun onConfirm() {
}
}
//here is interface
interface mainContract {
interface Presenter {
fun setView(view: mainContract.View)
fun setModel(model: mainModel)
fun onConfirm()
}
interface View {
fun showButtonText(text: String)
}
}
На это ответили здесь: https://javarevisited.blogspot.com/2012/03/private-in-java-why-should-you-always.html
Или даже здесь: https://softwareengineering.stackexchange.com/questions/143736/почему-мы-нам-нужны-частные-переменные
Короткий ответ: "не ваше дело, как работает этот класс, вот что вам нужно знать". Если вы пишете одно приложение, нет никакого реального вреда в том, чтобы сделать все общедоступным. Однако, если вы пишете библиотеку, вы можете сохранить те же функции, ориентированные на пользователя, и изменить функции, не ориентированные на пользователя, - внутренний API.
не потому ли, что у него интерфейс внутри интерфейса...? просто интересно, лол