거의 7 년 후이 질문은 여전히 전과 같이 유효합니다.
내 생각에, javafx는 모델에 속한 클래스 중 어느 것으로도 가져 와서는 안됩니다. 그러나 MVC 아키텍처와 결합 된 MVVM을 채택하면 매우 잘 작동 할 수 있습니다. 이런 의미에서
- 엔티티 = (도메인) 모델 ( M )
- FXML 파일 =보기 ( V )
- 컨트롤러는 여전히 컨트롤러입니다 ( C )
- view-model ( VM ) = javafx 속성과 그것이 나타내는 실제 도메인 객체 (M)에 대한 참조 만 포함하는 새로운 데이터 클래스 세트. 비즈니스 로직 메소드 호출을이 오브젝트에 추가로 전달하여 복합 / 데코레이터 역할을 할 수 있습니다.
사물을 보는 또 다른 방법은 컨트롤러 클래스를 뷰의 일부로 생각하는 것입니다. 뷰 모델과 뷰 (데이터 및 작업)를 바인딩하는 것뿐이기 때문입니다. 따라서 쉽게 발표자 또는 바인더라고 할 수 있습니다. 그러나 이것은 컨트롤러 사용 방법에 따라 다릅니다. Controller 클래스에서 뷰 모델을 조작하기위한 로직을 추가하면 해당 이름을 사용할 수 있으며 위에 제시된 아키텍처가 있습니다. 컨트롤러 클래스가 모델 데이터 만 UI 요소에 바인딩하고 ActionEvents를 모델 메소드에 바인딩하는 경우 MVVM 돌연변이 아키텍처가 아래에 표시되는 경향이 있습니다.
저는이 아키텍처가 깨끗한 아키텍처 (프레젠테이션 레이어)에 대한 Bob Uncle의 아이디어와 어떤 식으로도 일치한다고 생각합니다.