오늘 .NET 사용자 그룹 모임에 갔는데 그 중 일부는 모델보기보기 모델 패턴을 중심으로 회전했으며 패턴으로 자격이 있는지 궁금해졌습니다.
내가 가진 문제는 M-V-VM이 매우 기술적 인 문제라는 것입니다. WPF와 그 바인딩 메커니즘을 사용하지 않는다면 어떻게 그 패턴을 사용할 수 있는지 알지 못합니다.
대조적으로, 대부분의 "고전적인"패턴은 대체로 기술적 불가 지론입니다. 그들이 만드는 가장 큰 가정은 사용 된 언어가 객체 지향이고 일반적으로 상속을 지원한다는 것입니다. 그 외에도 고전적인 패턴은 대부분 일반적인 디자인 문제를 설명하고이를 해결하기위한 접근 방식을 제안하지만 여러 구현 또는 변형이 가능합니다.
내 질문은 디자인 패턴과 매우 구체적인 프레임 워크를 사용하는 방법에 대한 권장 사항 사이에서 어디에서 선을 그어야합니까? 구현 방법 및 사용할 언어와 기술을 알고 있다면 여전히 패턴입니까?기술적 인면에서 여전히 디자인 패턴입니까?
답변
"접근 방식"이 작동하는 데 필요한 기본 개념을 특허, 지적 재산권 또는 음란물을 위반하지 않고 다른 플랫폼에서 다시 구현할 수 있습니까? 그렇다면 우리는 확실히 당신이 받고있는 의미에서 디자인 패턴이라고 부를 수 있습니다 - 그냥 넓게하기가 쉽지 않은 새로운 패턴입니다 아직입니다. 플랫폼 별 접근법조차도 여전히 이들을 사용할 수있는 소규모 커뮤니티를위한 디자인 패턴 일 수 있습니다.
또한 MVVM 단지 특정 당신이 말한대로 확실히 "고전"입니다 프레젠테이션 모델 패턴presented by Martin Fowler의 구현 및 멀티 플랫폼 있음을 유의하십시오 마십시오.
"태양 아래서는 아무것도 없습니다"라고 말하면서 같은 생각을 다른 방식으로 배열합니다. 원칙은 항상 세련되며, 새로운 원칙은 거의 발명되지 않습니다.
패턴은 다른 것의 일부 바다에서 섬이 아닙니다. 흑백이 아니라 무언가가 패턴이거나 그렇지 않은 것입니다. 모든 패턴은 규모에 따라 레이아웃 될 수 있으며 프로세스와 코드 사이에서 일반적인 도메인과 특정 도메인 사이의 다양한 회색 음영이 될 수 있으며 다른 두 가지 골 포스트를 선택할 수도 있습니다.
심지어 에서 공유하거나 재사용 할 가치가있는 요리법 인 경우 다른 상황 인 경우 패턴이 다릅니다.
예, 디자인 패턴은 프로그래밍 언어와 사용 기술에 의존하는 경우가 많습니다. 예를 들어, 명시 적 리소스 소유권을 다루는 DP는 가비지 수집 언어로 잘못 처리됩니다. 컴파일 타임 타이핑의 한계를 극복하기 위해 노력합니다. 동적 인 언어 등등 - 정상적이고 완벽하게 훌륭합니다.
"권장 사항"은 기술 컨텍스트가 아닌 폭과 깊이가 다른 "디자인 패턴"과 다르다. 적절한 DP는 두 개 이상의 독립적으로 개발 된 유사한 접근법을 식별하고, 일반적인 "세력" 그들은 다루고 있었고 아름답지만 무거운 무게의 메타 형식으로 거기에서 거침없이 움직였다. 대조적으로, recommdendation는 매우 덜 형식적이고 깊고 광범위합니다!
드프는 , 그들은 는 "힘"솔루션을 운전, 등, 등 공통점을 확인, 기존 코드 (두 개 이상의 독립적으로 개발 발생) 비슷한 상황과 그 거래를 통해 숙고에 의해을 발견하다 발명되지 않습니다"DP"는 인기가 많고 익숙한 용어로, 알렉산더의 Timeless Way of Building과 다른 작품을 소스 코드로 다시 읽고 읽거나 다시 읽어야하는 것보다 훨씬 더 많이 사용됩니다. DP의 유행어의 덤불을 통해, 그들은 당신이 흔적을 다시 찾을 수 있도록 도와 줄 것입니다! 당신이 WPF와 결합 메커니즘을 사용하지 않는 경우
, 나는 당신이 그 패턴을 사용할 수있는 방법을 볼 수 없습니다.
Silverlight 및 Moonlight는 MVVM도 지원합니다.
포인트가 찍혔습니다. 즉, Silverlight는 WPF의 하위 집합입니다 (Moonlight에도 마찬가지입니다). XAML 기반 뷰를 사용하여 넓은 의미에서 WPF를 사용하고 있습니다. – Mathias
"언어는 패러다임을 기반으로합니다", 각 패러다임은 문제를 해결하는 다양한 방법을 가지고 있습니다. 디자인 패턴은 일반적인 솔루션 일뿐 아니라 특정 언어인지 여부는 중요하지 않습니다.
- 1. 디자인 패턴입니까?
- 2. 여전히 어댑터 패턴입니까?
- 3. 어떤 디자인 패턴입니까?
- 4. 어떤 디자인 패턴입니까?
- 5. 어떤 디자인 패턴입니까?
- 6. 기술적 인면에서 개인의 기호에 따라 언어를 거부하는 것이 적절합니까?
- 7. 어떤 디자인 패턴입니까? 그것은 스레드와 관련이 있습니다
- 8. 이것은 일반적인 디자인 패턴입니까? "기술자 패턴"?
- 9. 은 객관적인 C에서 가장 좋은 디자인 패턴입니까?
- 10. 아이콘 디자인 UI 지침은 여전히 유효합니까?
- 11. 일반 모델은 반 패턴입니까?
- 12. "공장"방법이 올바른 패턴입니까?
- 13. 이것은 거친 반 패턴입니까?
- 14. 이것은 명령 패턴입니까?
- 15. 이것은 알려진 패턴입니까?
- 16. Mockery는 TDD 방지 패턴입니까?
- 17. Rss/Feedburner 기술적 설명?
- 18. codecampserver의 StaticFactory가 잘 알려진 패턴입니까?
- 19. ASP.NET MVC는 실제 MVC 패턴입니까?
- 20. 내 jQuery 스크립트에 적합한 패턴입니까?
- 21. 기술적 부채 관리 도구를 사용하고 있습니까?
- 22. 루프의 기술적 비 종결 조건
- 23. 스프링 엔티티 서비스, 가능한 디자인 결함이지만 여전히 사용 가능
- 24. 스테이징 테이블/스테이징 데이터베이스는 안티 패턴입니까?
- 25. 은 컨테이너 계층의 모달 윈도우에 나쁜 패턴입니까?
- 26. 이것은 nodejs에서 알려진 메모리 누수 패턴입니까?
- 27. MVC 패턴은 순수한 프리젠 테이션 계층 패턴입니까?
- 28. 이들 중 어느 것이 저장소 패턴입니까?
- 29. 이 기능 공유를위한 잘못된 핵심 데이터 패턴입니까?
- 30. php에서 기술적 및 사용자 지향 오류 메시지 구성
+1. 위대한 대답에 대해 다른 표를 줄 수 있기를 바랍니다. – Rahul