Swing GUI가 도메인 로직과 통신하는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/69927

  •  09-06-2019
  •  | 
  •  

문제

여러 POJO에 일부 도메인 논리가 구현되어 있습니다.나는 사용자가 다양한 도메인 작업의 결과를 시작하고 볼 수 있도록 Swing 사용자 인터페이스를 작성하고 싶습니다.

UI와 도메인 간의 통신에 가장 적합한 패턴/프레임워크/라이브러리는 무엇입니까?이는 다음과 같이 요약됩니다.

  • 사용자 제스처를 도메인 작업으로 변환할 수 있는 UI
  • 표시 목적으로 상태/결과 정보를 UI로 다시 보낼 수 있는 도메인

저는 MVC를 광범위한 개념으로 알고 있으며 관찰자 패턴(제대로 이해하면 Java 구현에 몇 가지 단점이 있음)을 다루었지만 이 문제에 대해 허용되는 모범 사례가 있는지 궁금합니다.

도움이 되었습니까?

해결책

확실히 MVC-이런 것 명확하게 상황을 구분합니다.Swing 예제의 문제점은 MVC가 스윙 작업 내에서 작동하는 것을 모두 보여주는 것 같은데, 이는 나에게 적합하지 않은 것 같습니다.

다른 팁

MVC 개별 위젯에는 환상적이지만, 위젯을 사용하면 약간 다루기 어려워집니다. pages 그리고 forms 많은 위젯이 있습니다.

살펴볼 가치가 있을 수 있는 한 가지는(나는 그것을 보증하지 않으며 실제로 사용하지 않았으며 단지 나 자신과 매우 유사한 것을 구현했을 뿐입니다)는 다음과 같습니다. 빈 바인딩 프레임워크(JSR295))

나는 과거에 Observer 패턴(AspectJ 매직 사용)을 사용했습니다. 일부 성공했지만 조심하지 않으면 빠르게 클러스터가 되는 것을 발견했습니다.어..영화?

관리하기가 금세 어려워졌고 가장 중요한 것은 디버깅하기가 극도로 어려워졌습니다.

편집하다:

내 대답을 약간 확장하기 위해 우리는 SWT, Swing이 아니므로 YMMV.우리는 기본적으로 AspectJ를 사용하여 UI 구성요소에서 모델 객체로의 데이터 전송을 연결했습니다.이러한 모델 객체는 멍청한 POJO였습니다.

실제 비즈니스 로직은 AspectJ를 사용하여 모델 객체를 '감시'하고 변경된 경우 필요한 이벤트를 실행함으로써 수행되었습니다.따라서 텍스트 상자의 값을 변경하면 AspectJ가 실행되어 해당 값을 POJO에 복사합니다.POJO의 해당 필드에 비즈니스 로직에 대한 이벤트가 있는 경우 그 다음에 불.해당 로직이 POJO를 수정한 경우(그리고 가능하다면) AspectJ는 POJO의 값을 알아차리고 UI 구성 요소에 복사합니다.

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