MVC Imposta o leggi i componenti di visualizzazione

1

Spesso vedo l'esempio seguente durante la lettura di MVC (l'esempio è in Java, ma la domanda si adatta a tutte le lingue OOP):

class View{
    JTextField tfName;

    public String getTfNameText(){
        return this.tfName.getText();
    }

    public void setTfNameText(String text){
        this.tfName.setText(text);
    }
}

E poi nel controller qualcosa del tipo:

class Controller{
    View v = new View();
    ...
    public void actionPerformed(ActionEvent evt){
        v.setTfNameText("Button Clicked!");
    }
    ...
}

Ma questo è davvero considerato buono? Perché per quanto ho capito per ogni componente della GUI devo aggiungere un metodo get e set e il controller deve conoscere ognuno di questi metodi, il che lo rende non molto riutilizzabile. Qualcuno può dirmi se questo è il modo "corretto" (cioè ampiamente accettato) di aggiornare i componenti del GUI in MVC?

Grazie in anticipo

    
posta danielr1996 06.12.2015 - 17:10
fonte

1 risposta

1

Se il tuo controller ha a import javax.swing.JTextField stai sbagliando.

Hai una dipendenza da un pacchetto di cui il tuo controllore non dovrebbe sapere nulla.

(Quindi il tuo controller non è testabile senza integrazione dell'interfaccia utente, test con un'interfaccia utente è un dolore, ecc. ecc.)

    
risposta data 06.12.2015 - 19:34
fonte

Leggi altre domande sui tag