비즈니스 로직의 의미에 따라 다릅니다. 모델의 내용을 의미하는 "논리"는 모델에 있어야합니다. 관련 질문에서 가장 높은 투표 응답은 "비즈니스 로직"을 데이터와 관련된 것으로 정의하는 것 같습니다. 이것은 비즈니스 데이터가 비즈니스라는 관점에서 의미가 있습니다!
한때 레일즈 (Rails) (제 생각에) 제작자에 의해 예를 보았습니다. 그의 예는 앱 등록 및 로그인을위한 컨트롤러 클래스 및 메소드입니다. 일반 텍스트로 제공된 비밀번호는 모델 (데이터베이스)에 삽입하거나 쿼리하기 전에 암호화되었습니다.
컨트롤러 논리가 아니며 모델에 직접 속한 무언가에 대한 더 좋은 예를 생각할 수 없습니다.
이 모델은 수많은 데이터 저장소에 대한 인터페이스가되어 이식성 문제를 완화 할 수 있습니다. 여기 모델 인터페이스가 실제로 "컨트롤러"인지 아닌지 혼동 될 수 있습니다.
일반적으로 컨트롤러는 모델과 뷰 (앱의 고기와 감자)를 연결합니다. Cocoa 개발에서는 컨트롤러가 XCode GUI (컨트롤러 객체 및 바인딩)를 통해 컨트롤러를 처리하는 지점까지 간단 할 수 있습니다.
MVC에 대한 GoF의 "디자인 패턴"섹션은 다음과 같이 인용했습니다.
MVC 클래스 클래스는 Smalltalk-80에서 사용자 인터페이스를 구축하는 데 사용됩니다. 모델은 응용 프로그램 객체이고,보기는 화면 표현이며 컨트롤러는 UI가 사용자 입력에 반응하는 방식을 정의합니다. MVC는 뷰와 모델간에 구독 / 알림 프로토콜을 설정하여 뷰와 모델을 분리합니다. 다음 다이어그램은 모델과 세 가지보기를 보여줍니다. 단순성을 위해 컨트롤러를 생략했습니다.
MVC는 UI에 관한 것입니다. 모델과 뷰에 중점을두고 데이터를 정의하고 표시합니다. "구독 / 알림 프로토콜"에 주목하십시오. 이것은 컨트롤러가 들어오는 곳입니다. 원하는 모든 뷰를 만들 수 있습니다. 프로토콜을 준수하는 한 모델이나 컨트롤러를 만질 필요가 없습니다.
웹 개발에 대해 구체적으로 이야기하고 있다면 IMHO 많은 인기있는 웹 프레임 워크는 MVC와 그 구성 요소 정의라는 용어로 빠르거나 느슨합니다.