Я с трудом собираю API для общественного потребления. Как таковой я пытаюсь ограничить методы, которые подвергаются только тем, которые я хочу быть общедоступными и поддерживаемыми. Под этим, конечно, существует множество методов ограниченного доступа.
Проблема в том, что у меня есть много внутреннего кода, который должен получить доступ к этим ограниченным методам, не открывая эти методы. Это создает две проблемы:
- Я не могу создавать интерфейсы для общаться между классами, поскольку это сделают эти мои внутренние методы общественности.
- Я не могу получить доступ к защищенным или по умолчанию методов, если я не поставил большинство мои внутренние классы в одном и том же пакет.
Итак, у меня есть около 70 или 80 внутренних классов в чисто разделенных пакетах, но с чрезмерно разрешительными модификаторами доступа. Скажете ли вы, что один пакет является меньшим из двух зол или есть лучший способ укрыть мои внутренние методы, сохраняя при этом более гранулированные пакеты?
Мне было бы интересно узнать о лучшей практике здесь.
Я уже знаю Это