Umm ... nessuna delle cose che le persone hanno menzionato sono schemi di progettazione.
GOF è stato scritto implicitamente con Java in mente. Ha esplorato lo spazio abbastanza bene.Tuttavia, una volta entrati in altre lingue, alcuni schemi non sono più necessari (l'Observer è usato raramente in un linguaggio come C# che supporta eventi) e alcuni nuovi emergono. Prenditi i libri Pro JavaScript Design Patterns o Design Patterns In Ruby e guarda cosa succede ai pattens stand-by in questi paradigmi molto diversi.
I miei preferiti ultimamente sono arrivati appoggiandosi alla deriva funzionale dei linguaggi moderni. Sono un grande fan di nested closures e dei modi funzionali di affrontare alcuni degli stessi problemi che fa GoF (di nuovo, vedere il libro Ruby per grandi esempi). Sono anche innamorato dell'idea di domain-specific languages interna che si apre a tutta una serie di modelli di design (comprese le chiusure annidate). Anche l'event-aggregation sembra essere pronta a colpire nel mondo .Net nel prossimo futuro.
Un paio di altri grandi che hanno colpito la scena, ma non sono discussi tanto in GoF - probabilmente perché sono più di alto livello di quello che quei ragazzi stavano andando - sono Inversion Of Control Containers, Message Bussing, Orientato all'aspetto -Programmazione, Model-View-Controller, Model-View-Presenter, Model-View-ViewModel e il loro ilk.
A proposito, questi non sono schemi di progettazione, ma se stai cercando di progredire al di là di TDD, inizia a guardare allo Sviluppo guidato dal comportamento e al Contesto/Specifica.
fonte
2010-05-07 17:09:09
Ancora una volta, voglio sottolineare che quelli non sono realmente modelli di design, sono modelli di architettura. Simile, ma molto più alto livello. –