내 수업에서는 MVC 및 MVP와 같은 다양한 디자인에 대해 학습했습니다. 현재 JTable 및 사용자 지정 플롯에 데이터를 표시하는 응용 프로그램을 작성 중입니다. 내 질문은 뷰와 컨트롤러 간의 통신에 대해 어떻게해야 하는가입니다.MVC 뷰 및 컨트롤러 통신 구현. (Java)
예를 들어 파일에서 모델로 데이터를 가져와야하는 버튼이 있습니다. 사용자가 파일을 가져 오려한다는 것을 컨트롤러에 알리는보기가 필요하다고 생각합니다. 그런 다음 컨트롤러는 필요한 로직을 수행합니다. 보기는 그렇게해야합니까? 몇 가지 옵션이 있습니다. 1) 사용자가 가져 오기 버튼을 클릭 할 때마다 호출되는 내부 클래스를 컨트롤러에 생성하게하십시오. 이 경우 컨트롤러는 사용자가 가져 오려는 파일을보기 위해보기의 메소드를 호출해야합니다. 2)보기에서 이벤트를 감지 한 다음 컨트롤러에서 적절한 메서드를 호출하여 파일 이름과 함께 전달하십시오.
이것은 컨트롤러가 컨트롤러에 대해 알고 있는지 여부에 대해 더 큰 질문을합니다. 나는이 것들에 대한 정답이 없다는 것을 알고 있지만 최선의 방법은 무엇인가?
당신은보기가 작업 흐름과 관련하여 더 많은 "리더"라고 말하고 싶습니까? 예를 들어 뷰는 복잡한 계산 결과를 표시해야합니다. 그런 다음 컨트롤러를 호출하여 모델에서 작동하고 결과를 반환합니다. – user650271
전혀 아닙니다. 당신은 "모델"이 단순한 엔티티가 아닌 단일 레이어가 아니라는 것을 이해해야합니다. 모델은 비즈니스 규칙을 구성하는 일련의 구성 요소입니다. 보기는 모델에 대해 몇 가지 작업을 요청합니다. 그것은 확실히 리더십이 아닙니다. 뷰는 작업 흐름을 시작합니다. 컨트롤러를 호출하면 컨트롤러는 "결과가 표시됩니다"라는보기에 응답합니다. – bluefoot