2010-08-11 3 views
0

내가 전통적 그래서 같은 모델 - 뷰 - 발표자 [수동보기]를 구현 한 :모델 - 뷰 - 발표자 및 전송 대형 오브젝트

interface IView 
{ 
string Title {set;} 
} 

class frmTextBox : Form, IView 
{ 
... 
public string Title 
{ 
set { this.txtTitle.Text = value; } 
} 
... 
} 


class frmLabel : Form, IView 
{ 
... 
public string Title 
{ 
set { this.lblTitle.Text = value; } 
} 
... 
} 

class Presenter 
{ 
private IView view; 
... 
public void UpdateTitle 
{ 
this.view.Title = "A Good Title"; 
} 
... 
} 

내가 전통적으로 만 IView 인터페이스의 기본 형식을 사용했다 (int , string, bool) 나는 항상 당신이보기에서만 원시 타입을 사용해야한다는 것을 이해했기 때문에. 리포지토리 (예 : NHibernate)에서 DataGridView에 항목 목록을 표시하려면 모델에서 발표자로 일반 컬렉션 (IList<T>)을 전달해야합니다. 이는 뷰의 기본 원칙을 기본 유형으로 만 구성하거나 아키텍처가 OK가되는 규칙에 위배됩니까?

DTO (데이터 전송 개체)가 있더라도 수동보기 스타일이 아닌 감독자 컨트롤러가 될 것입니다. 구현하려고합니다.

생각들 ??

답변

2

다른 사람들의 경험을 바탕으로 솔루션을 설계하는 데 도움이되는 패턴이 있습니다.

그들은 형식화 된 템플릿 일뿐입니다. 구조가 완벽하게 임의의 정의에 맞지 않는 경우에도, 당신은 더 생산하게 어떤

사용.

2

어쩌면 나는 많은 것을 놓치고있었습니다. 뷰를 원시 타입 만 표시하는 것으로 제한된 것으로 본 적이 없습니다.

이 제한이 사용되는 이유와 그 이점은 무엇인지 알고 싶습니다. 그것은 "IMO가 완전히 잘못되었습니다."라고 말하는 것이 아니라, 그 이익에 관해서 궁금합니다. 제 생각에 컴퓨터가 충분히 강력하기 때문에 특정 성능 사양을 타깃으로하지 않는 한 개발자 가이드 라인에 맞게 개발자의 비용이 고비용이 될 수 있습니다.

그 자체로 보증하지 않습니다. 그러나 내가 본 모든 MVC 기사는 뷰와 컨트롤러 사이의 클래스 주위에서 행복하게 밴딩되었습니다. MVP는 MVC의 다른 형태이므로 MVP와 관련하여 MVC에 문제가 없다고 말할 수 있습니까?

+0

이 잘 나는 쉽게 DataGridView에 의해 표시되는보기에 발표자로 모델에서 IList의를 통과 할 수 아무것도 기술적으로 할 수없는,하지만 그 구조적 정답 또는 내가 다른 경량의 방법을 사용하는 경우는 확실하지 않다. –

관련 문제