меня всё это время был и остаётся всего 1 вопрос: что с видимостью классов? Поясню на примере. Я пишу на MVP и пишу создаю 3 класса:
class SomeFragment : MvpFragment<SomeView, SomePresenter> () { ... }
interface SomeView : MvpView { ... }
class SomePresenter : MvpPresenter<SomeView> () { ... }
На Java я могу View(interface и возможно fragment) и Presenter объявить package local и нигде больше они у меня в проекте не будут видны. На Kotlin у меня ни разу такого организовать не получилось. Начинается сразу светиться красным и требовать проставить public visibility. Можно ли как-то повторить трюк из джавы?
❝ The motivation for not having package protected access is very simple: it does not provide any real encapsulation. Any other module in the system can define classes in the same package as your complex independent component and get full access to its internals. On the other hand, classes with internal visibility cannot be accessed from any module other than the one where they are defined. And you definitely can test methods/classes that have internal access: the tests of a module have full access to internal declarations of that module. ❞
Обсуждают сегодня