Я понимаю идею объема пакета, и иногда даже думал, что я хотел это. Однако каждый раз, когда я с серьезным намерением пытался использовать его, я обнаруживал, что он не соответствует потребностям, которые, как я думал, он будет обслуживать.
Моя главная проблема всегда заключается в том, что вещи, которые я хочу ограничить, никогда не находятся в одном пакете. Концептуально все они могут быть связаны, но логическое разделение данных в приложении делает их отдельными дочерними пакетами большего пакета.
Например, у меня может быть модель Миссии, и я хочу, чтобы только другие инструменты Миссии, такие как мои сервисы миссии, использовали некоторые методы. Тем не менее, я получаю в качестве своих пакетов Missions.models и Missions.services, так что MissionModel и MissionService - это не одна и та же область действия пакета. Никогда не кажется, что существует ситуация, когда пакеты надлежащим образом содержат вещи, для которых я хотел бы иметь повышенные разрешения, и не включали в себя множество вещей, которые я не хотел бы иметь этих разрешений; и редко я чувствую преимущество определения объема пакета, когда метод оправдывает изменение архитектуры моего проекта, чтобы поместить все в один пакет. Часто либо Аспекты, либо какая-то инверсия управления оказываются лучшим подходом к любой проблеме, которую я кратко рассматривал для определения объема пакета.
Мне любопытно, что это, как правило, считается верным для всех разработчиков Java, или просто случайность моей работы. Много ли используется объем пакета в реальном мире? Много ли случаев, когда это считается хорошей формой для использования, или это рассматривается в основном как устаревшее поведение, которое редко используется в современной разработке?
Я ничего не спрашиваю о том, почему закрытая область пакета является стандартной, я спрашиваю, когда ее следует использовать независимо от настроек по умолчанию. Большинство дискуссий о том, почему это значение по умолчанию, на самом деле не затрагиваются, когда область действия пакета действительно полезна, вместо этого просто спорят о том, почему две другие часто используемые области не должны быть по умолчанию, поэтому пакет выигрывает в процессе исключения. Кроме того, мой вопрос касается текущего состояния развития. В частности, развили ли мы до такой степени, что другие инструменты и парадигмы делают область применения пакета менее полезной, чем это было тогда, когда решение сделать ее по умолчанию имело смысл.