Originariamente inviato da Santino83_02
L'interazione tra model e controller è da evitare per il semplice fatto che così facendo leghi il controller col model in maniera molto forte, e probabilmente anche inutile, perchè basterebbe che il model torni un risultato di un'operazione invece di invocare eventi così, a buffo. Questo ti permette poi di poter utilizzare i model in maniera trasparente da qualsiasi altro oggetto, senza bisogno che tale oggetto si registri nel model o implementi un'interfaccia specifica. E soprattutto ti permette di giocare con i model senza legarti a nessuno in particolare.

Se tu vuoi fare un oggetto che NON SIA un controller ma che cmq lavori con dei model, ad esempio per incapsulare una logica di business molto complicata ma usata in molti punti del programma, che fai? devi fare un controller che non sia un controller o cose simili? implementare interfacce inutili? estendere (dio ce ne scampi) altre classi?

cioè lo puoi anche fare, per carità ognuno è genio e inventa i modi che gli tornano piu comodi, solo che quello non è mvc, non è codice disaccoppiato, controller e model fanno piu di quello che devono fare, in particolare il model, e il model è sostanzialmente inutilizzabile da oggetti che non implementano determinate interfacce, quando lo scopo del model è essere usato in maniera trasparente e senza fronzoli.
Quoto tutto, specialmente il grassettato. Non c'e' ragione per fare cio'.