2009-10-22 2 views
2

오늘 .NET 사용자 그룹 모임에 갔는데 그 중 일부는 모델보기보기 모델 패턴을 중심으로 회전했으며 패턴으로 자격이 있는지 궁금해졌습니다.
내가 가진 문제는 M-V-VM이 매우 기술적 인 문제라는 것입니다. WPF와 그 바인딩 메커니즘을 사용하지 않는다면 어떻게 그 패턴을 사용할 수 있는지 알지 못합니다.
대조적으로, 대부분의 "고전적인"패턴은 대체로 기술적 불가 지론입니다. 그들이 만드는 가장 큰 가정은 사용 된 언어가 객체 지향이고 일반적으로 상속을 지원한다는 것입니다. 그 외에도 고전적인 패턴은 대부분 일반적인 디자인 문제를 설명하고이를 해결하기위한 접근 방식을 제안하지만 여러 구현 또는 변형이 가능합니다.
내 질문은 디자인 패턴과 매우 구체적인 프레임 워크를 사용하는 방법에 대한 권장 사항 사이에서 어디에서 선을 그어야합니까? 구현 방법 및 사용할 언어와 기술을 알고 있다면 여전히 패턴입니까?기술적 인면에서 여전히 디자인 패턴입니까?

답변

5

"접근 방식"이 작동하는 데 필요한 기본 개념을 특허, 지적 재산권 또는 음란물을 위반하지 않고 다른 플랫폼에서 다시 구현할 수 있습니까? 그렇다면 우리는 확실히 당신이 받고있는 의미에서 디자인 패턴이라고 부를 수 있습니다 - 그냥 넓게하기가 쉽지 않은 새로운 패턴입니다 아직입니다. 플랫폼 별 접근법조차도 여전히 이들을 사용할 수있는 소규모 커뮤니티를위한 디자인 패턴 일 수 있습니다.

또한 MVVM 단지 특정 당신이 말한대로 확실히 "고전"입니다 프레젠테이션 모델 패턴presented by Martin Fowler의 구현 및 멀티 플랫폼 있음을 유의하십시오 마십시오.

"태양 아래서는 아무것도 없습니다"라고 말하면서 같은 생각을 다른 방식으로 배열합니다. 원칙은 항상 세련되며, 새로운 원칙은 거의 발명되지 않습니다.

4

패턴은 다른 것의 일부 바다에서 섬이 아닙니다. 흑백이 아니라 무언가가 패턴이거나 그렇지 않은 것입니다. 모든 패턴은 규모에 따라 레이아웃 될 수 있으며 프로세스와 코드 사이에서 일반적인 도메인과 특정 도메인 사이의 다양한 회색 음영이 될 수 있으며 다른 두 가지 골 포스트를 선택할 수도 있습니다.

심지어 에서 공유하거나 재사용 할 가치가있는 요리법 인 경우 다른 상황 인 경우 패턴이 다릅니다.

+0

+1. 위대한 대답에 대해 다른 표를 줄 수 있기를 바랍니다. – Rahul

1

예, 디자인 패턴은 프로그래밍 언어와 사용 기술에 의존하는 경우가 많습니다. 예를 들어, 명시 적 리소스 소유권을 다루는 DP는 가비지 수집 언어로 잘못 처리됩니다. 컴파일 타임 타이핑의 한계를 극복하기 위해 노력합니다. 동적 인 언어 등등 - 정상적이고 완벽하게 훌륭합니다.

"권장 사항"은 기술 컨텍스트가 아닌 폭과 깊이가 다른 "디자인 패턴"과 다르다. 적절한 DP는 두 개 이상의 독립적으로 개발 된 유사한 접근법을 식별하고, 일반적인 "세력" 그들은 다루고 있었고 아름답지만 무거운 무게의 메타 형식으로 거기에서 거침없이 움직였다. 대조적으로, recommdendation는 매우 덜 형식적이고 깊고 광범위합니다!

드프는 , 그들은 는 "힘"솔루션을 운전, 등, 등 공통점을 확인, 기존 코드 (두 개 이상의 독립적으로 개발 발생) 비슷한 상황과 그 거래를 통해 숙고에 의해을 발견하다 발명되지 않습니다"DP"는 인기가 많고 익숙한 용어로, 알렉산더의 Timeless Way of Building과 다른 작품을 소스 코드로 다시 읽고 읽거나 다시 읽어야하는 것보다 훨씬 더 많이 사용됩니다. DP의 유행어의 덤불을 통해, 그들은 당신이 흔적을 다시 찾을 수 있도록 도와 줄 것입니다! 당신이 WPF와 결합 메커니즘을 사용하지 않는 경우

0

, 나는 당신이 그 패턴을 사용할 수있는 방법을 볼 수 없습니다.

Silverlight 및 Moonlight는 MVVM도 지원합니다.

+0

포인트가 찍혔습니다. 즉, Silverlight는 WPF의 하위 집합입니다 (Moonlight에도 마찬가지입니다). XAML 기반 뷰를 사용하여 넓은 의미에서 WPF를 사용하고 있습니다. – Mathias

0

"언어는 패러다임을 기반으로합니다", 각 패러다임은 문제를 해결하는 다양한 방법을 가지고 있습니다. 디자인 패턴은 일반적인 솔루션 일뿐 아니라 특정 언어인지 여부는 중요하지 않습니다.

관련 문제