2012-09-13 2 views
0

텍스트 문서를 읽고 통계를 텍스트 파일에 쓰는 작은 프로그램을 디자인하는 데 많은 어려움이 있습니다. 우리는 아직 배웠던 모델 - 뷰 - 컨트롤러 형식을 사용해야합니다!파일 읽기 용 Java Model View 컨트롤러

기본적으로 모델 클래스는 텍스트 파일의 텍스트를 나타내며 String 또는 String 배열에 저장해야합니다. 또한 단어의 수와 그와 같은 것을보고하는 방법을 가져야합니다. 뷰 클래스에는 bufferedreader 및 writer가 있어야합니다. 컨트롤 클래스는 객체를 만들고 printResults() 메서드를 호출합니다. 나는 이것이 잘못 느낌이

Model model = new Model(); 
View view = new View(model); 

view.writeFile(); 

:

그래서 나는 내 컨트롤 클래스는 같은 것을 갖는 시작했다. 내 모델 클래스를 텍스트 문서로 나타내려면 어떻게해야합니까? View 클래스에 보내 모델 클래스를 읽은 다음 뷰 클래스에서 모델 클래스의 메서드를 호출하여 통계를 작성하게 하시겠습니까? 더 나은 접근 방법이 있습니까? 아니면 여기에 누락 된 것이 있습니까?

+0

프로그램에 사용자 인터페이스가 있습니까? 어쩌면 내가 틀 렸지만 본질적으로 MVC 패턴은 GUI (View로 개념화)를 포함합니다. –

+0

입력이 없습니다. txt 파일을 읽고 통계를 작성해야합니다. 컨트롤은 단지 프로그램을 시작하기위한 것입니다. –

답변

0

모델이 적합합니다. View 클래스를 사용하여 데이터를 모델 안팎으로 이동하는 것은 합리적입니다. 일반적으로보기가 시각적으로 보입니다. 보기 텍스트 파일을 표시 할 수있는 몇 가지 창을 것이라고 생각합니다. 어쩌면이 파일은 사용자가 열 파일과 저장할 파일을 선택할 수있는 GUI의 일부일 수 있습니다.

컨트롤러는 종종 프로그램이 사용자 입력에 응답하는 곳입니다. 그러나이 프로젝트의 UI를 만들 필요가 없다면 "보기"와 "컨트롤러"에 대한 해석이 좋을 것입니다. 이 프로그램이 Swing으로 쓰여 있다면, 당신의 Controller는 당신이 묘사 한 것을 계속 할 것입니다. 그러나 사용자가 저장 단추 또는 파일 열기 단추를 클릭하면 이에 대한 응답으로 이러한 작업이 수행됩니다.

새 모델 인 경우 Model-View-Controller 디자인 패턴에 대해 읽어야합니다. 예를 들어, Oracle's technetwork article on MVC.

+0

모델 클래스의 뷰 객체와 뷰 클래스의 모델 객체를 선언 할 필요없이 내 뷰와 모델 클래스가 서로를 인식하게하려면 어떻게해야합니까? 이것은 무한 루프가 될 것입니다 –

+0

2 개의 클래스는 서로에 대한 참조 (필드)를 가질 수 있습니다. 이것은 무한 루프 또는 전혀 루프가 아닙니다. – Thorn

0
How do I make my view and model classes aware of each other 
without having to declare a view object in the model class and 
a model object in the view class? 

컨트롤러의 작업을 -이 8 호실 참조하십시오. 일반적으로 Controller 클래스의 Model 및 View 필드는 'setter'및 'getters'로 에 작성합니다. 그런 다음 주 프로그램 클래스에서 View 및 Model 객체를 만들고이를 Controller 클래스의 필드로 설정합니다. 뷰와 모델간에 데이터를 중계 할 때마다이 방법으로 컨트롤러의 해당 필드를 사용하여 각각의 메서드를 호출하면됩니다.

예를 들어 사용자가 입력 한 숫자를 두 배로 표시하고 싶다고 가정 해 봅시다. Controller 객체의 구현에서 View의 메서드를 호출하여 사용자 입력을 가져 와서 Model의 메서드에 대한 인수로 전달합니다. 그런 다음 반환 된 값을 할당하거나 모델의 메서드의 수를 두 배로 설정하여 원하는 형식으로 결과를 표시하는 뷰 또는 메서드에 다시 전달합니다.