Quindi in pratica ti crei una classe che contiene tutti i metodi che possono essere richiamati dall'utente, metodi che in questa classe si limitano a richiamare poi i metodi delle classi corrette, cioè questa classe principale raccoglie le richieste dell'utente per poi passarle alla classe corretta, giusto? anche se non ho capito bene cosa intendi con la frase "del core scrivo solo le interfacce senza implementazione"...Io del core scrivo solo le interfacce senza implementazione. creo una classe che racchiude tutti i riferimenti di quelli che saranno gli oggetti che implementeranno quelle interfacce in modo da non dovermi preoccupare, dalla GUI, della struttura logica delle classi di business: ho solo una classe (vedi design pattern Facede).
cioè crei dei metodi fake che non fanno nulla? mi sa che non ho capito molto bene questa parteQuando hai bisogno di testare l'applicazione (testare è una parola generica che va dal vero test al semplice "farla partire") implemento una versione "fake" dei metodi richiamati dalle parti di GUI che andrò a provare. Questo garantisce che qualsiasi problema venga fuori in questa fase non sia un problema di core ma un problema di GUI.