2011-08-17 4 views
13

내 명령 줄 프로젝트에서 MVC를 가져 오려고합니다. (분명히 어떤 MVC) 지금 현재로MVC 명령 줄에서 Java

내가 가진 :

  • MainClass는 (가짜 이름 명백하게), 메뉴를 몇 번 사용 프렛은이 시스템 객체를 메인으로 사용
  • 메뉴 (생성 옵션을 제시)
  • 시스템은 파일 또는 키보드 입력으로 생성 된 속성으로서 모델을 가지며 Model의 데이터를 사용하여 간단한 연산을 수행합니다 .calculate (valueA, valueB) valueA 및 valueB는 다음을 사용하여 선택됩니다. 모델의 속성의 점에서 메뉴
  • 모델 (친족 d 개)은 내가 가지고있는 데이터의 컨테이너입니다.

수업에 적합한 구조를 제안 해 주시겠습니까? 그것은 오히려 흥미로운 하나로서

고마워은 누가 복음

+0

무엇을 의미합니까? 무슨 MVC 클래스 라이브러리? 어떤 종류의 UI입니까? – bmargulies

+0

ModelViewController –

+0

@Luke 패턴을 의미합니다. 디자인 패턴이나 기존 라이브러리의 닉네임입니다. 후자라면 어떤 도서관인가? 전자의 경우 귀하의 질문은 무의미합니다. –

답변

14

는 내가 정말,이 질문에 대한 부정적인 반응에 의해 놀라게하고있다. 대부분의 사람들은 MVC가 웹 환경에서만 의미가 있다고 가정하기 때문에 MVC가 CLI 프로그램에도 완전히 적용될 수 있기를 기대합니다. 단지 다른 뷰 미디어를 제공합니다. 실제로 컨트롤러와 모델 조각을 변경하지 않고 CLI, GUI 또는 웹 "보기"를 연결할 수있는 최상의 MVC 디자인이라고 생각합니다.

MVC는 응용 프로그램이 제공 될 때 응용 프로그램의 실제 내부 논리에서 가능한 한 많은보기 부분 (응용 프로그램의 표시, 사용자가보고 상호 작용하는 것)을 추상화한다고 말합니다. 그렇게하는 방법은 뷰와 그 안에 존재하는 모든 컨트롤을 백엔드의 로직에 "접착"하는 컨트롤러를 만드는 것입니다. 간단히 말해 컨트롤러는 사용자 입력을 메소드 호출로 변환하고 반환 값을 사용자에게 유용한 자료로 다시 변환합니다. 패턴의 모델 부분은 다소 논쟁의 여지가 있습니다. 어떤 사람들은 표시를 위해보기로 전송되는 각각의 객체 그래프가 이고 "모델"이라고 말합니다. 다른 사람들은 백엔드에있는 전체 상태 저장 객체 그래프가 ""모델이라는 것을 유지하고 컨트롤러가 모델의 특정 부분을 선택, 검사 및 수정하도록하는 유리 모양을 형성합니다. 문제는 실제로 많은 모델이 끊임없이 앞뒤로 흐르는 지 또는 사용자가 이해할 수있는 방식으로 노출되어야하는 하나의 큰 모델인지 여부입니다.

CLI 또는 모든 유형의 앱에서 MVC를 얻으려면보기/표시로 명확하게 정의 된 코드의 일부가 있어야합니다. 결코 비즈니스 로직과 닮은 것을 가진 적이 없어야합니다. 컨트롤러는 사용자 입력에 응답하는 방법을 알고 있고 볼 수 있도록 다시 보낼 수있는 개체 여야합니다. 그러나 이러한 것들이 표시되는 방식이나 입력 형식이 정확히 취할지에 대한 어떠한 가정도하지 않아도됩니다. 모델은 기본적으로 사용자가 신경 쓰는 실제 데이터 또는 "물건"이며 모델을 보여주는보기 나 컨트롤러를 제어하지 못합니다.

관련 문제