문제

나는 약간의 리팩토링을하고 있습니다. 모델-뷰 컨트롤러 패턴을 구현하고 있습니다. 보기는 QT 위젯입니다.

원래 QT 위젯은 힙에 QabstractTableModel 서브 클래스의 새로운 인스턴스를 만들었습니다. 풋 블리 모드라고 부릅니다.

예를 들어

Widget::Widget(QWidget* parent)
    : 
    QWidget(parent)
    m_model(new FooTableModel(this))
{

대신 MVC 모델에서 FootAbleModel의 새 인스턴스를 만들어야합니까?

그렇게함으로써보기에 의존성을 만들 수 있습니다 (여전히 위젯의 포인터를 FootableModel 생성자로 전달한다고 가정합니다).

또는 FootableModel 생성자에게 아무것도 전달하지 않고 MVC 모델에서 FootableModel을 수동으로 삭제할 수 있습니다. *

마지막 옵션은 위젯에 FootableModel의 생성을 떠나는 것입니다. (위젯이 FootableModel을 직접 처리하게합니까?)

제안이나 선호도가 있습니까?

내 추측은 현재 *와 함께가는 것입니다.

도움이 되었습니까?

해결책

일반적으로보기를 모델에 전달하지 않기를 원합니다.

MVC 모델이 Qobject이고 FootableModel 인스턴스가 자식이라면 QT가 귀하를 위해 수행 할 수 있기 때문에 정리에 대해 걱정할 필요가 없습니다. 이상적으로, QT를 사용하는 경우 FootableModel은 모델이거나 인스턴스가있는 모든 것이 될 것입니다.

QT는 컨트롤러 작업이보기에 의해 처리되므로 모델/보기 패턴을 따릅니다. 체크 아웃 : http://doc.trolltech.com/4.5/model-view-introduction.html 이상.

짧은 답변 : FootableModel에 아무것도 전달하지 않고 완료되면 삭제하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top