2016-11-02 5 views
0

: 모델 층에서MVC에서 하나 이상의 모델/컨트롤러 클래스? MVC를 사용하여 여러 윈도우 응용 프로그램의 맥락에서

  • , 나는 하나 개의 주제 클래스를 사용하고 있어야한다 옵저버 패턴을 구현하기 위하여를 다른 모든 모델 클래스는 통보하기 위해 사용 옵저버? 또는 여러 제목을 만들어야합니까?
  • 같은 방식으로, 하나의 컨트롤러가 뷰에서 가능한 모든 작업을 처리해야합니까 아니면 여러 컨트롤러가 있어야합니까?

답변

0

"헤드 첫 번째 디자인 패턴"은 관찰자 패턴에 탁월한 장이 있습니다 (예 : 여러 컨트롤러의 경우, 응용 프로그램이 새 창을 열 때 컨트롤러가 인스턴스화되어야합니까?).

하나의 Subject 클래스를 사용해야하고 다른 모든 Model 클래스에서 관찰자에게 알림을 보내야합니까?

관찰자가 모두 동일한 데이터를 필요로하는지 여부에 따라 달라집니다. 관찰자가 다른 데이터를 필요한 경우, 여러 대상 클래스

을 사용 나는 하나의 컨트롤러는 뷰에 모든 가능한 조치를 돌보는 아니면 여러 컨트롤러

이 예상 한 대답하지 않을 수 있습니다를 가지고해야, 어쩌면 모든 컨트롤러에 대한 인스턴스를 만드는 대신보기의 생성자에 인터페이스를 전달할 수도 있습니다. 이 인터페이스는 컨트롤러에 의해 구현되어야합니다. 예는 :

class controller implements foos 
{ 
public static void run(); 
} 


interface foos{ 
    public static void run(); 
} 


public class view 
{ 
    foos controllerInstance; 
    //constructor 
    view(foos paramController) 
    { 
    this.controllerInstance = paramController; 
    } 
    //later in the code 
    controllerInstance.run(); 
} 

당신은 실행 방법은 paramater를 사용하여 데이터를 전달할 수 싶다면. 희망 사항 :

(첫 번째 답변은 SO)