Model View Controller, Model View Presenter, Model View ViewModel 등에 대해 읽었으며 일반적으로 기본 개념은 이해하기가 매우 간단 해 보입니다. 가능한. 디자인 초콜릿에 논리 땅콩 버터를 넣지 않음. 멋지다.
문제는 여전히 그 세 번째 부분에 대해서는 약간 모호합니다 ... 모델이 아닌 관점입니다. 누구나 전화해야 할 것,해야 할 일, 올바른 것, 명백한 잘못에 대한 자신의 아이디어를 가지고있는 것 같습니다. 발표자가 ViewModel이 될 때와 View가 안 될 시점을 알아 내려고 노력하고 있습니다. 발표자의 직업이기 때문에 그렇게하지 마십시오.
나는 짓밟고있다.
이미 다른 사람들이 그들 사이의 차이점을 설명 해달라고 요청하기보다는 이미 몇 번이고 반복되어 왔기 때문에 (알다; 내가 셀 수있는 것보다 더 많은 기사를 읽었 기 때문에)-나는 내가 함께 모은 모델의 프로그래머는 거의 없다.
즉, 이 디자인을 무엇으로 분류하고, 더 중요 하게는 이것에 대해 분명히 짜증나는 것을 보았습니까? 물론, 이것이 정말로 견고한 디자인이라면 내가 잘하고 있다는 말을 듣고 싶습니다. 그러나 나는 칭찬에 대한 확실한 조언을 많이 받고 싶습니다.
참고 : Model-View-의 신비한 세 번째 부분에 "다리"를 사용할 예정입니까? 그것이 무엇이어야하는지에 대한 잠재 의식적인 제안을 피하기 위해.
모델
- 데이터에 대한 권한입니다.
- Bridge에서 요청 된 변경에 대한 정보를받습니다.
- 데이터와 다른 데이터의 관계에 대한 모든 논리를 포함하고 수행합니다.
데이터가 변경 될 때 Bridge에 알립니다 (Bridge가 관심을 보인 데이터에 대해).문구 편집 : 외부 가입자 (아무것도 모르는)가 가입자의 상태 또는 계산 결과를 모니터링 할 수 있습니다.- 보기에 대한 지식이 없습니다.
전망
- 사용자에게 데이터를보고 조작하는 방법을 제공하는 것과 관련이 있습니다.
- Bridge에서 데이터 업데이트에 대한 정보를받습니다.
- 사용자에게 데이터 및 컨트롤을 표시하는 방법에 대한 모든 논리를 포함하고 수행합니다.
- 사용자가 모델에 영향을 줄 수있는 작업을 수행했을 때 브리지에 알립니다.
- Bridge에 관심있는 정보를 알려줍니다.
- 모델에 대한 지식이 없습니다.
다리
- 모델과 뷰 사이의 코디네이터 및 번역기입니다.
- 모델과 뷰 사이에 전달되는 정보의 형식을 적절하게 변경합니다.
- "누가 무엇을 알아야 하는가"에 대한 정보를 보유합니다.
- 모델과 뷰에 대한 지식이 있습니다.
추가 사항
- 보다 복잡한 프로그램에서는 여러 모델이있는 것이 일반적입니다. 이 상황에서 Bridge는 일반적으로 여러 모델 간의 조정 / 번역 작업을 수행하므로 프로토 타입 / API / 디자인 모델을 구축해야하는 권한이됩니다. (예를 들어, 카드 게임 프로그램을 구축하고 다른 데크 셔플 링 모델을 구축하려는 경우 Bridge와의 적절한 통신에 필요한 기능을 결정하기 위해 Bridge를 사용해야합니다.)
- 뷰와 모델이 하나만있는 작은 간단한 프로그램에서는 브리지가 어느 쪽에서 사용할 수있는 기능을 "가정"하는 것이 일반적입니다. 그러나 프로그램이 더욱 복잡 해짐에 따라 뷰와 모델은 비효율 성과 버그가있는 가정을 피할 수 있도록 해당 기능을 브리지에보고하는 것이 좋습니다.
나는 그것을 덮고 있다고 생각합니다. 꼭 사용하려는 디자인에 대해 궁금한 점이 있으면 언제든지 제안 해주십시오.
언제나 그렇듯이 시간을 내 주셔서 감사합니다.