2010-06-04 4 views
4

Java 데스크탑 응용 프로그램의 GUI에서 GUI를 분리하기 위해 (바람직하게는 오픈 소스) 프레임 워크를 권장 할 수 있습니까?Java GUI 응용 프로그램 용 MVC/MVP/MVVM 프레임 워크

+1

훌륭한 답변 (파스칼 Thivent에서) ** aldready ** 존재 : http://stackoverflow.com/questions/2105121/what-to-use-mvc-mvp-or-mvvm-or 몇 마디로> MVC는 컴포넌트를위한 것이고, MVP는 어플리케이션을위한 것입니다. – Destroyica

답변

5

기본 Java 코드에서 GUI 모델을 근본적으로 분리하는 것은 데이터 바인딩 라이브러리를 사용하는 것이 가장 좋습니다. 즉, pojo 비즈니스 코드가 있고, GUI 컴포넌트 코드가 있고, 뷰를 업데이트하고 비즈니스 로직을 구현하는 동안 항상 로직을로드하는 것을 좋아하지 않는다. 그러지 마라. 사용하고있는 GUI 위젯을위한 성숙한 데이터 바인딩 프레임 워크를 찾아서 배우십시오. 화면 컨트롤을 pojo 코드와 동기화하여 유지하십시오.

JGoodiesbeanbindings은 OO 모델에 대한 바인딩의 스윙 변종의 좋은 예입니다. JGoodies의 핵심 요소는 opensource입니다. jgoodies 사이트의/articles로 이동하면 패턴 및 데이터 바인딩에 관한 기사가 있습니다. 각 바인딩 프레임 워크에는 다른 클래스가 있지만 좋은 깨끗한 코드를 작성하는 패턴은 GUI 프레임 워크와 바인딩 프레임 워크간에 이식 가능합니다.

지금 opensource WindowsBuilderPro 도구를 다운로드하면 좋은 데이터 바인딩을 수행하는 스윙과 SWT 모두에서 훌륭한 예가됩니다. swing jphonebook 예제는 beanbindings 라이브러리를 사용합니다. WindowsBuilderPro는 드래그 앤 드롭 GUI 빌더입니다. 당신은 선도적 인 무료 GUI 라이브러리와 함께 작동하는 선도적 인 드래그 앤 드롭 GUI 빌더로서 비용을 지불해야했습니다. Google과 OpenSource에서 구입하여 GWT (Google 웹 GUI 프레임 워크)에 대한 그래픽 화면 빌더 지원을 강화할 수있었습니다.

그 GUI 빌더 도구는 훌륭한 샘플 코드와 훌륭한 오픈 소스 도구입니다. 드래그 - 앤 - 드롭 GUI 빌더 툴 파워를 시연하기 위해 스윙 (Swing) 및 SWT GUI 라이브러리에있는 전화 번호부의 동일한 예를 수행합니다. 따라서 데이터 바인딩을 배우는 동안 Swing을 SWT와 비교하고 대조하는 좋은 방법입니다.

3

Java Swing 실제로 이러한 목적으로 MVC를 잘 사용합니다.

+2

MV 모델의 "모델"은 저의 경우 주로 ListModel, TableModel 및 친구들이 도메인 모델을 의미한다는 것을 의미합니다. 발표자 또는 ViewModel에 더 가깝게 대응합니다. –

+2

일반 프레임 워크는 도메인 특정 모델 구성 요소를 어떻게 제공합니까? –

+0

물론 그렇지 않습니다. 나는 단지 그들이 조금 틀린 이름을 가지고 있다고 제안하고있다 :) –

1

스윙이 데스크톱 앱용 MVC 프레임 워크라는 제안에 대한 반응에서, 나는 당신에게 더 높은 수준의 사양에서 '모델'과 '뷰'코드를 생성 할 일종의 생성기 프레임 워크가 정말로 필요하다고 생각합니다. 예 (다소간) Eclipse EMF, GEF 및 관련 기술에 익숙합니다.

3

난 당신이 ZK 프레임 워크를 시도하는 것이 좋습니다 강하게 것입니다. 오늘까지 그런 srtong 프레임 워크를 발견하지 못했습니다. 우리 회사에서는 MVVM과 같은 최신 패턴을 사용하여 몇 주 내에 새로운 프로젝트를 적용했습니다. 프로그래밍 스타일은 고전적인 '데스크톱'앱을 개발하는 것과 비슷합니다.

추신 : 나는 결코 ZK 사람들과 관련이 없습니다. 나는 그들의 프레임 워크를 사용하고 있습니다.

+0

나는 ZK를 좋아하지만 .. 웹 프레임 워크이다. 이 질문은 데스크톱 응용 프로그램을위한 프레임 워크를 요구했습니다. –

관련 문제