2010-06-30 2 views
1

내가 MVC의 2 별개의 "맛"주의 사항 :어느 MVC의 맛이 더 널리 받아 들여지고 있습니까?

1) "원본"MVC 어디보기에 직접 모델 회담 2) 컨트롤러는 중재자 패턴 결코 모델과 뷰를 사용하여 "애플 코코아"MVC link text에서 직접

통신 :

MVC의 목표입니다, 건축 설계의 복잡성을 줄이고, 코드의 유연성과 유지 보수성을 높이기 위해, 모델과 뷰를 감 결합하여.

저에게는 큰 의미가 있습니다. 그러나 위키 피 디아에서 볼 수 있듯이 # 1을 사용하면 모델과 뷰 사이에 링크가 생기므로 매우 복잡하게 보입니다. "원래"MVC가 목표를 해결하지 못하는 것 같습니다.

대조적으로 # 2는 매우 명확하게 UI를 통해 데이터를 표시하고 입력하는 방법, 표현 방법에 전혀 신경 쓰지 않는 모델 및 둘 다 잠재적으로 재사용 할 수없는 유일한 코드가됩니다. MVC 목표를 달성합니다.

저는 "믿어지는"# 2 코코아에서 일하고 있고, 평범한 C++로 일하고 있기 때문에 나에게 좋을 것 같습니다. 나는 무엇이든 믿을 수 있습니다. 그러나이 MVC의 맛은 야생에서 더 많이 발견 할 것입니까? 예를 들어 Ruby on Rails, Struts, PureMVC ..이 MVC를 사용하지만 # 1 또는 # 2를 볼 수 있습니까?

편집 : 그럼 어떤 경우, 그래서 어떤 현대적인 접근 방식을 사용 # 1 않습니다, 더 많은 일을 수락 # 2 같은 소리?

+0

모델 # 1의 예는 무엇입니까? –

답변

1

나는 보편적으로 받아 들여지는 것이 확실하지 않지만, 대부분의 사람들은 레일스를 MVC의 '스펙'으로 간주하고, 레일스에서는 모델과 뷰를 직접 (거의 절대) 말하지 않는다. 컨트롤러는 모델 데이터를 찾아보기로 전송합니다.

+1

MVC는 1970 년 SmallTalk에서 제작되었습니다. Rails는 2004 년에 출시되었습니다. Rails가 MVC의 권위있는 소스라는 인상을주는 것은 무엇입니까? (심각한 질문, 겁 먹지 않고) – Jeff

+0

헤이 @ 제프, 나는 오늘 같은 방식으로이 질문에 대답하지 않을 것이다. 이 답변은 당시 웹 개발에 대한 내 경험을 기반으로했습니다. – thomasfedb

+0

대답은 '레일즈가 이런 식으로하는 것'으로 귀결되며 도움이되지 않습니다. 진실은 MVC의 많은 풍미에 가깝다고 생각합니다. 아무도 보편적으로 제외되지 않습니다. MVC는 패턴이 아니라 사용하는 프레임 워크에 따라 여러 가지 구체적인 패턴이있는 더 높은 수준의 개념입니다. 웹 애플리케이션 용으로 동일한 MVC가 데스크톱 애플리케이션에서 작동 할 수있는 방법은 없습니다. 왜냐하면 처음부터 무국적자를 해결해야하기 때문입니다. 따라서 모델과 뷰는 대화 할 수 없습니다. Chrome에서 렌더링 된 텍스트 상자 요소는 서버의 모델과 통신 할 수 없습니다 (아약스를 제쳐두고). –

1

asp.net MVC에서 2 번 접근 : 컨트롤러가 모델을 읽고 쓰고, 뷰로 데이터를 보내고받습니다. 조회수와 모델은 직접 이야기하지 않습니다.

관련 문제