Tôi hiểu ý tưởng về phạm vi gói, và đôi khi thậm chí đã nghĩ rằng tôi muốn nó. Tuy nhiên, mỗi lần tôi cố gắng sử dụng nó, tôi phát hiện ra nó không phù hợp với nhu cầu mà tôi nghĩ nó sẽ phục vụ.
Vấn đề chính của tôi dường như luôn luôn là những điều mà tôi muốn giới hạn phạm vi không bao giờ nằm trong cùng một gói. Về mặt khái niệm, tất cả chúng có thể được liên kết, nhưng việc phân chia dữ liệu hợp lý trong ứng dụng có chúng như các gói con riêng biệt của một gói lớn hơn.
Chẳng hạn, tôi có thể có một mô hình Mission và tôi chỉ muốn các công cụ Mission khác, như MissionService của tôi, sử dụng một số phương thức. Tuy nhiên, tôi kết thúc với Missions.models và Missions.service dưới dạng các gói của mình, vì vậy MissionModel và MissionService không cùng phạm vi gói. Dường như không có trường hợp nào các gói chứa một cách thích hợp những thứ mà tôi muốn có quyền nâng cao mà không bao gồm nhiều thứ tôi không muốn có những quyền đó; và hiếm khi tôi cảm thấy lợi thế của gói phạm vi một phương pháp biện minh cho việc sửa đổi kiến trúc dự án của tôi để đặt mọi thứ trong cùng một gói. Thường thì các khía cạnh hoặc một số loại đảo ngược của điều khiển hóa ra lại là cách tiếp cận tốt hơn cho bất kỳ vấn đề nào mà tôi đã xem xét ngắn gọn về phạm vi gói.
Tôi tò mò hơn là điều này thường được coi là đúng đối với tất cả các nhà phát triển Java hoặc chỉ là một công việc tôi làm. Là phạm vi gói được sử dụng nhiều trong thế giới thực? Có nhiều trường hợp nó được coi là hình thức tốt để sử dụng, hoặc nó được xem chủ yếu là một hành vi di sản hiếm khi được khai thác trong phát triển hiện đại?
Tôi không hỏi bất cứ điều gì về lý do tại sao phạm vi riêng tư gói là mặc định, tôi hỏi khi nào nên sử dụng nó bất kể mặc định. Hầu hết các cuộc thảo luận về lý do tại sao nó không thực sự được đưa vào khi phạm vi gói thực sự hữu ích, thay vào đó chỉ tranh luận đơn giản là tại sao hai phạm vi thường được sử dụng khác không nên mặc định để gói thắng theo quá trình loại bỏ. Ngoài ra, câu hỏi của tôi là về tình trạng phát triển hiện tại . Cụ thể, chúng tôi đã phát triển đến mức các công cụ và mô hình khác làm cho phạm vi gói trở nên ít hữu ích hơn khi nó trở lại khi quyết định làm cho nó mặc định có ý nghĩa.