Pergunta

Eu estou fazendo alguma refatoração. Estou implementando um padrão Model-View-Controller. A vista é um widget Qt.

Originalmente, o Qt widget de criar uma nova instância de uma subclasse QAbstractTableModel na pilha. Vamos chamá-lo FooTableModel.

exemplo

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

Devo criar a nova instância do FooTableModel no modelo MVC em vez disso?

Ao fazer isso, eu poderia criar uma dependência no view (supondo que eu ainda passar o ponteiro do widget para o construtor FooTableModel)

Como alternativa, eu poderia passar nada para o construtor FooTableModel e excluir manualmente o FooTableModel no meu modelo MVC. *

A última opção seria deixar a criação do FooTableModel no widget. (E deixe o widget lidar com a FooTableModel diretamente?)

Todas as sugestões, ou preferências?

Meu palpite é ir com * no momento.

Foi útil?

Solução

Geralmente você quiser evitar passar a vista para o modelo.

Se o seu modelo MVC é um QObject ea instância FooTableModel é uma criança dele, então você não precisa se preocupar com a limpeza becasue Qt vai fazer isso por você. Idealmente, se você estiver usando o Qt a FooTableModel seria o modelo, ou o que tinha a instância de que seria.

Qt segue o padrão Model / View já que o trabalho do controlador é tratado pela vista. Confira: http://doc.trolltech.com/4.5/model-view -introduction.html para mais.

curta resposta:. Passe nada a FooTableModel, excluí-lo quando feito

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top