2010-01-31 4 views
2

전문 용어 충돌에 어려움을 겪고 있으며 좋은 해결책을 찾을 수 없습니다. 어쩌면 다른 누군가가이 문제를 겪었을 것입니다.MVVM 패턴을 사용하도록 기존 코드를 리팩토링 할 때이 전문 용어 혼란을 어떻게 해결합니까?

WPF를 사용하기 위해 기존 WinForms 응용 프로그램을 다시 작성하고 있습니다. 새 응용 프로그램에서 MVVM 패턴을 사용할 것입니다. 내 오래된 응용 프로그램은 ADO를 광범위하게 사용합니다. 특히, 개체를 랩하는 DataRow 개체가 있습니다. 그리고 행의 어떤 열이 UI의 특정 컨텍스트에 나타날 수 있는지 정의하려면이 정의가 RowView 객체에 있습니다.

개념적으로, "보기"이에 대한 적절한 용어입니다 - 하나가 DataRow을 기초하여 각각보기 많은 등의 열, 액세스 권한, 자사의 하위 집합을 정의하는 RowView 객체를 사용하여 여러 객체를 가질 수에서와 SQL 데이터베이스. ColumnView 개체에는 RowViewColumnViews 컬렉션에 특정보기의 각 열의 표현에 대한 메타 정보가 들어 있습니다.

이것은 모두 젖은 쿵쾅 거리기로 MVVM 패턴을 치고 있습니다. MVVM에서 "보기"는 다른 것을 의미합니다. 즉, UI의 객체 표시를 의미합니다. MVVM에 관한 한 내 응용 프로그램의 RowView은보기가 아닙니다. MVVM에는 실제로는 RowView 객체가 없지만 UI와 특정 객체 사이의 상호 작용 로직을 지원하는 기본 RowViewModel과 행의 각 열에 대해 기본 객체 인 ColumnView이 있습니다.

일반적으로 전문 용어의 혼동은 카테고리 오류에서 발생하지만,이 경우 나는 카테고리가 올바르게 있다고 생각합니다. 문제는 서로 다른 컨텍스트가 다른 것들에 대해 동일한 이름을 사용한다는 것입니다.

즉 "네임 스페이스"하지만 확실히 기술적으로을 를 작동 이러한 용어를 명확하게하기 위해 네임 스페이스를 사용하는 동안이 코드 하나를 가로 질러 보았 때 혼란에게 새로운 개발자 경험을 해명 할 것을 심각하게 의심이 발생 순진 대답 비트.

또 다른 가능성은 개체의 이름을 다른 것으로 변경하는 것입니다. 마찬가지로 모델에서 "행"과 "열"을 사용하고 뷰와 뷰 모델에서 "레코드"와 "필드"를 사용할 수 있습니다. 그래서 나는 과 RowView에서 을 구성 할 수 있으며, 각 열의 값과 ColumnView에서 Field을 작성할 수 있습니다. 그런 다음 WPF에 노출되는 RecordViewModelFieldViewModel 개체를 가질 수 있으며 UI 개발자는 RowViewColumnView 개체가 존재한다는 것을 결코 알 필요가 없습니다. 그러나 이런 종류의 악취도 있습니다.

MVVM을 사용하기 위해 소프트웨어를 다시 작성하는 동안이 문제를 겪은 사람이 있습니까? 도대체 당신은 무엇을 했습니까?

답변

1

이 경우에는 역순 헝가리 표기법으로 추가하는 것을 선호합니다.

  • * 모델 뷰 또는 * 모델 (예 : ExpenseModelView 또는 ExpenseDataView) 용 DataView를 뷰 자체 (예 :ExpenseUIView) 용
  • * UIView의

개인적으로 나는 네임 스페이스와 협약. 내 모델과 VM과 뷰뿐만 아니라 애플리케이션 전반에서 일관되게 사용하기 때문에 모델을 사용하는 방법을 알 수 있습니다. View, ViewModel 또는 Model의 차이점을 사용 방법이나 참조 방법 및 방법에 따라 알 수 있습니다.

그러나 새로운 개발자의 탑승에 영향을 주거나 일관된 규칙을 고수하는 데 어려움이있는 경우 헝가리 풍의 이름 지정 규칙을 사용하여 유형을 조금 구분할 수 있습니다.

+0

+1. 프로젝트의 독창적 인 개발자가되는 것이 가장 큰 약점 중 하나는 명쾌하지 않은 답변은 완전히 이해할 수 없다는 것입니다. 80 %의 시간 동안 나는 (SO의 커다란 이점 중 하나 인) 질문을 작성함으로써 대답을 얻었습니다. 이 시대는 아니 었습니다. 고맙습니다. –

+0

@ 로버트 로스니 : 오 .. 네, 거기서 들려요. 작은 시너지없이 조금 힘들어. 물건을 튀게하는 사람을 갖는 것은 대부분의 사람들에게 과소 평가됩니다. 다행히 도울 수있어. –

관련 문제