Ich verstehe die Idee des Paketumfangs und habe manchmal sogar gedacht, dass ich es wollte. Jedes Mal, wenn ich mich mit der ernsthaften Absicht auf den Weg machte, es zu versuchen, stellte ich fest, dass es nicht den Anforderungen entsprach, von denen ich dachte, dass es dienen würde.
Mein Hauptproblem scheint immer zu sein, dass die Dinge, deren Umfang ich einschränken möchte, niemals im selben Paket enthalten sind. Sie können konzeptionell alle miteinander verknüpft sein, aber die logische Aufteilung der Daten innerhalb der Anwendung hat sie als separate untergeordnete Pakete eines größeren Pakets.
Zum Beispiel kann ich ein Missionsmodell haben und ich möchte, dass nur andere Missionswerkzeuge, wie meine missionServices, einige Methoden verwenden. Am Ende habe ich jedoch Missions.models und Missions.services als meine Pakete, sodass MissionModel und MissionService nicht denselben Paketumfang haben. Es scheint nie eine Situation zu geben, in der Pakete die Dinge angemessen enthalten, für die ich erhöhte Berechtigungen haben möchte, ohne auch zahlreiche Dinge zu enthalten, für die ich diese Berechtigungen nicht haben möchte. und selten habe ich das Gefühl, dass der Vorteil des Paketumfangs eine Methode rechtfertigt, die meine Projektarchitektur so ändert, dass alles im selben Paket platziert wird. Oft erweisen sich entweder Aspekte oder eine Art Umkehrung der Kontrolle als der bessere Ansatz für jedes Problem, für das ich kurz über das Scoping von Paketen nachgedacht habe.
Ich bin eher neugierig, dass dies allgemein von allen Java-Entwicklern als wahr angesehen wird oder nur ein Zufall meiner Arbeit ist. Wird der Paketumfang in der realen Welt häufig genutzt? Gibt es viele Fälle, in denen die Verwendung als gute Form angesehen wird, oder wird sie meist als altes Verhalten angesehen, das in der modernen Entwicklung selten ausgenutzt wird?
Ich frage nichts darüber, warum der private Bereich des Pakets standardmäßig ist. Ich frage, wann es unabhängig von den Standardeinstellungen verwendet werden soll. Die meisten Diskussionen darüber, warum es sich um eine Standardeinstellung handelt, werden nicht wirklich behandelt, wenn der Paketumfang tatsächlich nützlich ist. Stattdessen wird lediglich argumentiert, warum die beiden anderen häufig verwendeten Bereiche nicht standardmäßig sein sollten, damit das Paket durch Eliminierung gewinnt. Außerdem geht es bei meiner Frage um den aktuellen Entwicklungsstand. Insbesondere haben wir uns so weit entwickelt, dass andere Tools und Paradigmen den Umfang des Pakets weniger nützlich machen als damals, als die Entscheidung, es als Standard festzulegen, Sinn machte.