Stavo leggendo l'architettura del codice e il paradigma MVC / MVVP. Idealmente, dovremmo avere il modello come una politica / componente di alto livello in cui non dovrebbe conoscere o dipendere direttamente da altri componenti, come la vista. In sostanza, uno dei ruoli del controller è l'invio di input al modello e quindi il componente del modello come dipendenza. Tuttavia, abbiamo bisogno che il modello abbia bisogno di comunicare con il controller ogni volta che si verificano cambiamenti di stato. Dalla mia comprensione, non dovremmo far dipendere il modello dal controller in quanto creeremmo una dipendenza bidirezionale tra i componenti, che può portare a codice non gestibile e difficoltà nell'aggiunta di modifiche. Quindi, immagino che la relazione bidirezionale comunichi come segue:
Tuttavia,secreiamoun'interfacciaperilmodellopercomunicareconilcontroller,IController
,èpossibilerimuoverequestacomunicazionebidirezionale.IController
implementatuttiimetodichenotificanolemodifichealcontroller.Ladipendenzasaràsimileallaseguente:
Ora, il modello è all'oscuro delle effettive implementazioni del controller. Pertanto, le modifiche nel controller non dovrebbero influire sui componenti del modello. Mi chiedevo se aggiungere un'interfaccia per il controller il modo migliore per comunicare tra modello e controller.
Sono anche consapevole del fatto che in alcuni programmi, il modello può comunicare direttamente con la vista direttamente utilizzando il modello di progettazione dell'osservatore. Tuttavia, il modello non dovrebbe conoscere i dettagli di implementazione della vista poiché il modello dovrebbe essere rispettato con una politica di alto livello e non dovrebbe conoscere le politiche di basso livello, come la vista. Pertanto, in questo caso, non consideriamo il modello di osservatore per il modello per comunicare la vista.