다음과 유사한 창이있는 응용 프로그램이 있습니다.GUI 디자인 패턴, MVP, 탭 컨트롤
alt text http://a.imageshack.us/img137/7481/screenshotxh.jpg
여기 요구 사항은 사용자가 클릭하면 저장 버튼 모든 저장받을한다는 것이다. "저장"및 "재설정"버튼은 모든 탭에서 "공통"입니다. 따라서 "개인 정보"탭을 선택하고 "저장"을 클릭하면 "친구"탭의 변경 사항과 "취업 기록"탭의 변경 사항을 저장해야합니다.
이 앱은 이미 다음과 같은 코드를 가지고 있는데이 코드 유지하려면 :
-PersonalInformationView, PersonalInformationPresenter, PersonalInformationModel
-FriendsView, FriendsPresenter, FriendsModel
-EmploymentHistoryView, EmploymentHistoryPresenter, EmploymentHistoryModel을
각 발표자는 저장 방법이 있습니다.
질문은 내가 가지고있는 코드를 으로 유지하고 싶다고 생각하면 좋은 디자인 패턴이 될 것입니다.. 또한,이 창에 모델, 뷰, 발표자가 있어야합니다. 아니면 내 질문을 조금 바꿔야합니다 : MVP 프로그래밍시 "하위보기", "하위 발표자"를 포함하는 가장 좋은 방법은입니까?
감사합니다, MadSeb
이것은 참으로 영감을줍니다. 그러나, 다음과 같은 문제가 있습니다. 각 발표자의 "저장"방법은 저장하기 전에 데이터 유효성 검사를 수행하며 실패 할 경우 * view.DisplayValidationErrors() *가 호출되고 msgbox가 표시됩니다 ("우편 번호가 없습니다."등) 당신이 제안한 코드는 첫 번째 탭의 유효성 검사 실수에 대해 하나의 msg.box, 두 번째 탭의 유효성 검사 실수를위한 msg.box 하나를 얻을 것을 제안했습니다. 그러나 모든 유효성 검사 실수는 단지 하나의 msg.box에 집계됩니다. – MadSeb
나는 이것을 처리하는 방법을 보여주기 위해 나의 대답 (두 번째 코드 블록)을 업데이트했다. – Pondidum