문제

Java 데스크탑 응용 프로그램 모듈 식을 어떻게 만드나요? 모듈은 어떻게 분류되어야합니까?

도움이 되었습니까?

해결책

설계 목표로서, 모듈성은 각 부품이 책임 영역을 가지고 있고 해당 영역과 관련된 모든 클래스를 포함하는 별도의 부품 (모듈)으로 구성된 응용 프로그램을 원한다는 것을 의미합니다. 응집력)) 및 해당 부품 간의 통신은 좁고 잘 정의되고 문서화 된 인터페이스를 통해 발생합니다 (느슨한 결합).

디자인을 미리 계획하고 해당 계획을 조정하고 구현 중에 코드를 지속적으로 리팩토링하여이를 달성합니다.

GUI, 네트워크 통신 또는 DB 액세스와 같은 기술 모듈 (종종 계층을 형성하지만 여러 모듈로 감소 할 수 있음)과 응용 프로그램 별 논리를 포함하고 종종 DON '을 포함하는 도메인 모듈간에 차이를 만드는 것이 유용합니다. T 형 층.

다른 팁

OSGI Technologies를 살펴보십시오. 응용 프로그램의 각 모듈 (번들이라고 함)은 별도의 항아리이며 OSGI는 종속성 해상도를 관리하고 번들 클래스 경로 등을 동적으로로드합니다.

데스크탑 응용 프로그램의 경우 DA-Launcher를 살펴 보는 것이 좋습니다. www.dynamicjava.org. 앱 배포를 훨씬 쉽게 배포 할 수 있습니다. 또한 OSGI 앱에 유용한 Dynamic JPA와 같은 몇 가지가 있습니다.

일식과 같은 모듈 식을 의미합니까?

Eclipse RCP 또는 NetBeans RCP에 Java 데스크탑 응용 프로그램을 기반으로하면 "무료"(거의 ;-)) 모듈식이 "모듈화"를 얻게됩니다.

귀하의 질문에 대한 답은 실제로 무엇을 의미하는지에 달려 있습니다. "모듈 식".

응용 프로그램을 모듈화 할 때 고려해야 할 몇 가지 수준의 우려 사항이 있습니다.

우선 당신이 추구하는 "모듈 식"이 건축 양식, 배포 시간 시간 모듈성 또는 런타임 모듈성.

어쨌든 모든 연속 레벨은 이전 수준을 모두 암시합니다.

우선 - 애플리케이션 모듈화를 만들려면 아키텍처에서 시작해야합니다. "외부 세계"에 대한 인터페이스가 잘 정의 된 잘 정의 된 깨끗한 컷 부품으로 우려 사항을 분리하십시오. 선의 사용 디자인 패턴 그리고 의존성 주입 그리고 디자인 단위 테스트 가능성 모듈 식 디자인의 기반 인 우려 사항을 잘 분리하는 데 먼 길을 가십시오.

작게 시작하지만 큰 그림을 명심하십시오. 시스템의 약간 더 큰 청크 (또는 모듈)를 설계 할 때 가능한 한 겹치는 영역이 거의 없는지 확인하십시오. 모든 모듈은 그들이 실행하는 환경에 대해 거의 가정하지 않아야하며 하나의 단일 문제 만 제공해야합니다. 피어에게 필요한 모든 서비스는 외부 초기화 (바람직하게는 의존성 주입 모듈을 함께 작동하는 앱에 맞추기 위해).

아키텍처가 모듈식이되면 우려 사항을 자체 배포 장치로 분리하는 것이 쉬운 작업입니다. 프로젝트, 항아리, 묶음, 플러그인, 확장 또는 무엇이든) 배포 중에 다양한 모듈을 쉽게 믹싱하고 일치시켜 특정 응용 프로그램 인스턴스에 필요한 정확한 기능 세트를 얻을 수 있습니다. 이것이 내가 의미하는 바입니다 배포 시간 모듈성.

배포 시간 모듈화를 가능하게하는 데 먼 길을 가고 있습니다. 의존성 주입 프레임 워크와 같은 기체, 스프링 프레임 포크 다른 사람.

런타임 모듈성 내가 보는 방식은 배포/설치 후 구성 및 응용 프로그램 모듈 세트를 변경할 수있는 Eclipse 및 NetBeans 플러그인 또는 Mozilla 확장자가 제공하는 모듈성과 유사합니다.

이는 애플리케이션 초기화 시간에 또는 런타임에 동적으로 새로운 플러그인/확장을 인식하는 일종의 아키텍처 및 인프라를 의미합니다.

후자는 또한 모든 모듈이 모듈이 사용하는 모든 서비스가 언제라도 쉽게 분해 될 수 있다는 암시 적으로 구축되어야 함을 의미하며,이 휘발성 세계에서 실행되는 코드의 견고성을 보장하기 위해 추가 노력을 기울입니다.

또한 Eclipse RCP를 추천하거나 NetBeans RCP를 살펴 보겠습니다. 둘이 매우 비슷합니다. 이를 분리하는 한 가지는 Eclipse RCP가 NetBeans가 사용하는 스윙 대신 기본 GUI 라이브러리를 사용한다는 것입니다.

장단점은 Elcipse가 운영 체제가 제공하는 컨트롤의 종류에 더 제한되어 있지만 Elcipse가 조금 더 빠를 수 있다는 것입니다. NetBeans는 대부분의 Java 개발자에게 더 친숙 할 수있는 스윙을 사용하며 맞춤 제어 기능을 개발할 수있는 능력은 끝이 없습니다.

Eclipse RCP와 함께 일한 이래로 오랜 시간이 걸렸으므로 Eclipse RCP에서 사용자 정의 컨트롤을 개발하는 것이 잘못 될 것입니다.

그들이 공통적으로 가지고있는 것은 스마트 및 모듈 식 데스크탑 앱을 개발하는 것이 재미 있고 훨씬 적은 시간 안에 전문적인 앱을 얻는다는 것입니다!

행운을 빕니다!

Java 플러그인 프레임 워크를 살펴볼 수도 있습니다.

http://jpf.sourceforge.net/

JPF는 Java 시스템의 모듈성 및 확장 성을 크게 향상시키고 지원 및 유지 보수 비용을 최소화 할 수 있습니다.

Spring RCP를 사용해보십시오

http://www.springsource.org/spring-rcp

신청서의 GUI 부분을 구성 할 때 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top