2

MVC 패턴을 충분히 이해하고 있지만 C++의 실제 구현에는 놀라 울 정도로 적은 양의 정보가 있습니다. 이 응용 프로그램에서는 wxWidgetsboost::depedency_injection을 사용하고 있지만 상황은 일반적이어야합니다.C++에서의 객체 소유 (MVC 패턴)

C++ 11/14에서 우리는 객체 소유에 대한 엄격한 규칙을 가지고 있습니다. 객체는 소유자간에 공유되거나 하나의 소유자에게 고유합니다. 또한 피 호출자가 소유하지 않은 객체에 대한 구식 포인터가 있습니다.

그래서, 질문 : 누가 C++에서 MVC의 어떤 개체 (모델/뷰/컨트롤러)를 소유하고 있습니까? 지금은

내 생각 엔 :

Viewsunqiue_ptrboost:di에 의해 주입 controllers을 소유하고있다. Controllersviews이 소유하고 이 아니며은 어떤 형태로든 상태를 저장합니다 (models 카탈로그에서 실행되는 절차 만). Models 자체 shared_ptr로의 주입을 통해 모든 controllers 사이에서 공유되고, 오른쪽에 대한 MVC는 controllers 동작

검색 결과 제공 및 데이터를 저장하는 데 사용된다?

+0

왜 투표 마감까지해야합니까? – PiotrK

+0

그럼 MVC 변종이 너무 많아서 대답하기가 어렵습니다. 그러나 컨트롤러는 뷰에 의해 소유되지 않습니다. 컨트롤러는 뷰와 모델 사이의 기능적 다리이므로 반대가되어야합니다. 모델이 뷰에 첨부되므로 뷰가 모델을 소유 할 수 있습니다. 이렇게하면 http://stackoverflow.com/questions/6929957/mvc-approach-with-c가 도움이 될 수 있습니다. –

+0

@ Jean-BaptisteYunès 나는이 질문과 대답을 이미 읽었지만 MVC 이론에 불과합니다. 그리고 특정 구현 문제에 대해 묻고 있습니다 – PiotrK

답변

1

그럼 MVC 변종이 너무 많아 대답하기 어렵습니다. 그러나 컨트롤러는 뷰에 의해 소유되지 않습니다. 컨트롤러는 뷰와 모델 사이의 기능적 다리이므로 반대가되어야합니다. 모델이 뷰에 첨부되므로 뷰가 모델을 소유 할 수 있습니다.

first C++ example 또는 그 second C++ example을 검사하십시오. 처음에는 "정적"소유권이 있지만 두 번째 소유권에는 훨씬 더 많은 휘발성 물질이 있습니다.

+0

그런 접근 방식에서 컨트롤러를 동적으로 만드는 올바른 방법은 무엇입니까? – PiotrK