Prima di allontanarti troppo dai diversi metodi, assicurati di sfruttare il refactoring per semplificare e consolidare il tuo codice. Ecco il catalogo di Fowler, il " alfa Elenco dei refactoring ", ognuno dei quali può aiutarti a migliorare e gestire il tuo C # codice.
Imparando a progettare in modo efficace il riutilizzo e ottimizzando l'applicazione di interfacce, classi astratte, gerarchie di classi, iniezioni di dipendenze e strumenti simili esistenti all'interno della metodologia orientata agli oggetti standard, potresti trovarti sulla buona strada per raggiungere i risultati desiderati.
Oltre a ciò, @Chris Smith ti ha già segnalato il fatto che le versioni più recenti di C # (3.5 e 4.0) hanno aggiunto diverse funzionalità di programmazione funzionale che potrebbero aiutarti a rendere il tuo codice rock!
Se ritieni che ti piaccia la programmazione funzionale, prova la nuova lingua F # di Microsoft! In realtà è più simile a "oggetto funzionale", una miscela delle due metodologie. Potresti anche voler sapere che puoi mescolare F # e C # nella stessa soluzione .NET .
Concordo anche con gli altri commentatori che AOP ha certamente i suoi usi!