Java 9에는 패키지 외에도 모듈이 있습니다. 일반적으로 언어에는 둘 중 하나가 있습니다. 그리고 대부분의 프로그래머 는 두 용어를 동의어로 인식 합니다. 모듈은 패키지 위에 구축되어 기본 요소로 취급합니다. 복합 패턴은 프리미티브 및 복합 재료를 균일하게 처리 할 것을 제안합니다. 그렇지 않으면 나쁜 일이 일어날 것입니다. 예를 들어, Valhalla 프로젝트를보고 기본 (값) 및 참조 유형에 공통 수퍼 타입을 개조하려고합니다.
모듈과 패키지는 의미 상 분리 된 개념을 나타 냅니까? 모든 언어에 대해 두 가지를 모두 갖는 것이 합리적이라는 것을 의미합니다 (문제의 분리). 아니면 Java는 이전 버전과의 호환성에 대한 찬사를 가지고 있어야합니까?
기존 개념을 보강하는 대신 새로운 개념을 도입하는 이유는 무엇입니까?
JSR 376 : 프로젝트 내에서 구현 "자바 플랫폼 모듈 시스템" 지그 소 퍼즐 .
SOTMS 에 따르면
모듈은 명명 된 자체 설명 코드 및 데이터 모음입니다. 코드는 유형, 즉 Java 클래스 및 인터페이스를 포함하는 패키지 세트로 구성됩니다. 데이터에는 리소스 및 기타 종류의 정적 정보가 포함됩니다.
JLS는 패키지 정의를 신중하게 피 합니다 . 에서 위키 백과 :
Java 패키지는 Java 클래스를 Modula 모듈과 유사한 네임 스페이스로 구성하여 Java로 모듈 식 프로그래밍을 제공하는 기술입니다.
Wikipedia를 인용하는 것은 나쁜 습관이지만 일반적인 이해를 반영한다는 것을 알고 있습니다. 에서 입력 모듈 프로그래밍에 대한 :
패키지 라는 용어 는 모듈 대신에 사용됩니다 (Dart, Go 또는 Java에서와 같이). 다른 구현에서, 이것은 별개의 개념입니다. 파이썬에서 패키지는 모듈의 모음이며, 향후 Java 9에서는 새로운 모듈 개념 (향상된 액세스 제어 기능을 가진 패키지 모음)의 도입이 계획되어 있습니다.
package
/ 행동 / 의미를 바꾸려고하지 않으며, JRE에서 클래스 경로 시스템으로 바뀔 수도 없다. 질문 # 2 I 느낌은 주로 의견 지향 (이 없습니다 답할 수 있지만, 내 대답하고 다른 사람의이 다를 수 있으며, 둘 다 우리의 필요는 잘못된 것입니다).
jigsaw
스타일 모듈 은 패키지에 비해 기술적 개선입니까? 3) (1이 아니라면 2) Java는 단순히 이전 버전과의 호환성을 위해 두 개념을 모두 유지 합니다 . 이러한 질문 중 일부는 대답이 가능하고 일부는 주로 의견 중심입니다. 나는 설명을 단순화하는 편집이 순서대로 있다고 생각합니다.