2009-08-22 2 views
0

은 IViewInterface에 정의 된대로 액세스 할 컨트롤을 알고있는 발표자를 전제로합니다. 예를 들어 텍스트 상자에 두 개의 속성이있는 IViewInterface를 정의하고 단추 클릭 이벤트가 발생하면 호출을 Presenter로 전달하면 발표자는 두 속성에 액세스 할 수 있습니다. 아주 간단합니다. 이제 귀하의 UI가 귀하의 데이터베이스에있는 테이블을 기반으로 런타임에 구성되는 경우 상상해보십시오. 데이터베이스에 500 개의 테이블이 있고이 500 개의 테이블에 대해 CRUD 앱을 설계하려고한다고 가정 해 보겠습니다. 데이터베이스의 어딘가에서 UI의 레이아웃을 어떻게 정의 할 것인지 정의 할 수 있습니다. 런타임에이 500 개의 테이블에 대한 UI 컨트롤을 만드는 하나의 프로그램이 있습니다. 그런 경우 MVP 패턴을 어떻게 적용합니까 ??winforms에서 MVP 패턴을 사용하여 동적으로 생성 된 UI가있는 MVP 패턴

+0

무엇이든지간에 나는 질문을 올리 자마자 -1을 얻는다. 계속해라. – codemnky

+0

나는 계속해서 배우고 반죽을 갈퀴로 골라 내면 명성에 점수를 얻고, mvp를 얻는다. – codemnky

+0

인터넷은 위대하다. 40 년의 경험을 통해 중요한 지식을 얻을 필요가 없습니다. 짧은 순서로 이것을 얻을 수있는 방법이 있습니다. – codemnky

답변

1

완전히 동적 인 사용자 인터페이스가 많은 프로그래머에 의해 많은 성공없이 시도되었습니다. 나는 많은 사람들이 당신에게 기본적인 전제 즉, 테이블을 만들 수 있다고 확신하지만, UI를 만들지 만 그 외에는 아무 것도 실제로 해결되지 않아서 자신의 일을하는 것이 더 낫다.

다른 접근 방법이 있다고 생각하면 그냥 시도해보고 작동 방식을 확인해야합니다.

0

발표자는 컨트롤에 대해 전혀 신경 쓰지 않아야합니다.

보기가이 데이터를 속성으로 표시 할 수 있습니다. 500 개의 UI 레이아웃이있는 500 개의 테이블이 모두 GridView와 같은 표준 디스플레이 컨트롤을 사용하고 있다면 GridView의 "CurrentTableName"속성과 "CurrentRow"속성 중 하나를 활성화 된 행으로 표시 할 수 있습니다. 발표자는 DTO 또는 DM 객체를 가져 와서 비즈니스 또는 서비스 계층에 전달하거나 변환 할 수 있습니다.

이 경우에는 가능하지 않을 수도 있습니다. 윈폼에서 MVP 패턴을 사용하여

+0

나는 비슷한 개념을 가지고있었습니다. 나는 우리가 값이 임의의 수에 대한 리트리버 내가 필요한이 방법 언제든지 부를 것이다 제어 이름으로 내 발표자 테이블 필드를 사용하는 규칙을 가지고 있기 때문에 내 개의 IView 그냥이 목록처럼 GetValuesFromTheFormForTheseControls (목록 ControlNames) 을 하나의 방법을 것이라고 생각했다 통제 수단 – codemnky

0

참 IViewInterface에 의해 정의 으로 액세스 할 수 제어하는 ​​대한 을 알고 발표자에 을 전제로하지만, 동적 GUI의 경우 당신은하지 않습니다 이러한 컨트롤을 인터페이스의 속성으로 개별적으로 노출해야합니다. 일반 컨트롤을 몇 가지 공통 속성을 가진 클래스로 정의하고 이러한 컨트롤 목록을 사용자 인터페이스의 단일 속성으로 표시 할 수 있습니다.

이것은 설계를 수행하는 한 가지 방법 일뿐입니다. 설계는 정확한 시나리오에 따라 다릅니다. 그러나 일반적으로 나는 동적 인 GUI가 심지어 인데 반대로 MVP를 소개하기위한 후보자는 일 것입니다.