2010-09-21 8 views
9

Sono un po 'nuovo rispetto al concetto di schemi di progettazione.
C# è il mio linguaggio di programmazione principale. (Io uso VB di volta in volta). Non voglio scrivere codice sciatto che è inflessibile, non estensibile e bug.
Ogni volta che vedo un modello di progettazione in azione, mi piace la logica che c'è dietro e lo capisco bene, ma sfortunatamente, ho problemi a implementarli nei miei progetti.Modelli di design ... da dove cominciare? (Alcuni campioni del mondo reale)

Vedete, ci sono molti modelli di design (penso a 120+) e sono un po 'perso tra loro quando voglio decidere quale usare.
Quando si tratta di usarli in azione, non ho idea di cosa scegliere.
Tutto ciò che ottengo dai tutorial sono alcuni frammenti di codice abbastanza semplici che sono molto lontani dall'ambiente di produzione. tranne DDD modello che sono riuscito a impararlo bene poiché ci sono almeno 2 buoni libri e molte risorse su di esso.

Ora la mia domanda:
C'è un posto dove posso trovare alcuni esempi reali utilizzando vari modelli di progettazione? Almeno alcuni campioni "più pratici". Sai dovunque posso trovare libri/campioni/risorse per altri modelli?
Grazie.

risposta

11

Vorrei iniziare con il libro Head First Design Patterns. Non è complicato come alcuni altri libri ed è pensato per essere un'esperienza di apprendimento invece di un riferimento.

Molto meglio per imparare da zero secondo me. Head First I libri sono abbastanza buoni per presentare il materiale in modi interessanti e fare un buon lavoro nel mantenerti interessato. Questo libro cerca anche di legare ogni schema a un esempio di pseudo vita reale.I loro esempi potrebbero non essere pertinenti a quello su cui stai lavorando, ma almeno hanno a che fare con gli stessi tipi di problemi dei problemi del mondo reale (penso che il primo esempio riguardi la scrittura di un videogioco di simulazione dell'anatra).

anche Head First Design Patterns concentra sul vadano a finire il tuo cervello con il maggior numero di modelli possibili in modo da poter riconoscere quando si è in una situazione di utilizzare uno e di essere ben attrezzata abbastanza per almeno iniziare. È qui che potrebbe essere utile un riferimento specifico, come il libro GoF.

Tuttavia, tieni presente che i primi libri di Head First si concentrano in genere sui principianti assoluti. I loro libri non costituiscono un buon materiale didattico dopo aver raggiunto la fase intermedia in un determinato argomento.

+0

+1 Un ottimo libro per iniziare. È molto più facile entrare nel libro GoF per persone nuove a questi argomenti. – FrustratedWithFormsDesigner

+2

È divertente, tutti sembrano essere d'accordo sul fatto che sia il miglior libro ma non mi è mai piaciuto il modo in cui è stato strutturato. – ken

+0

@ken sì, è un po 'diverso, questo è sicuro. Anche se è strutturata in modo strano (diverso da quasi tutti gli altri libri, specialmente quelli tecnici), a mio parere, presenta il materiale in un metodo molto più accessibile di qualsiasi altro libro di design che abbia mai visto. Lo fanno annaffiando i soggetti il ​​più possibile, quindi sono quasi banali da capire. Tuttavia, gli schemi di progettazione sono un argomento così delicato, che in realtà funziona in questo caso. –

9

Mi sento ancora come il original gang of four Design Patterns book è il modo migliore per imparare questo. L'obiettivo non è quello di utilizzare il modello in una lingua specifica o in un luogo specifico, ma in realtà descrivendo perché i modelli esistono.

Una volta capito veramente perché i modelli esistono (non solo come funzionano), utilizzarli nel proprio codice di produzione viene naturalmente.

+1

+1, il libro GoF è ancora una lettura obbligata. –

+0

dopo 4 anni di pubblicazione originaria di questa domanda, devo ammettere che il libro originale di GoF è molto meglio di qualsiasi altra risorsa. – Kamyar

0

modelli di Leggi Martin Fowler di Enterprise Application Architecture:

http://www.amazon.co.uk/Enterprise-Application-Architecture-Addison-Wesley-Signature/dp/0321127420

E anche architecting applicazioni per l'impresa:

http://www.amazon.co.uk/Microsoft-NET-Architecting-Applications-PRO-Developer/dp/073562609X

Entrambi sono buone. Quest'ultimo ha alcuni esempi .NET di modelli esposti nel libro di Martin Fowler. Entrambi i libri spiegano quando è bene usare un dato schema.

2

Inizia con i modelli GoF. ISBN 978-0201633610 Modelli di progettazione: elementi del software orientato agli oggetti riutilizzabile

1

Questo sito ha una buona lista di modelli classici e di altri soggetti legati esempi: SourceMaking.

PS: Sono sempre stato preoccupato per i diritti di questo sito che ha o meno la pubblicazione di queste informazioni. La parte Refactoring è una copia del libro di Martin Fowler, ma non ho mai trovato alcun riferimento esplicito.

2

La comprensione dei modelli di progettazione viene con il tempo e l'esperienza. A meno che tu non abbia molto talento, all'inizio probabilmente scriverai codice che potrebbe essere strutturato in modo più efficiente e non te ne accorgi nemmeno. Non ti preoccupare troppo di ciò.

La cosa con i modelli di progettazione sta imparando a vedere i loro benefici. La particolare forma di un motivo di solito ha ragioni ben precise. Imparare a utilizzare un modello è facile una volta che hai capito i motivi per cui l'organizzazione del codice in questo modo è vantaggiosa. Fai domande, imposta ipotesi, sperimenta e vedi se avevi ragione.

Per la lettura, suggerirei Design Patterns Explained e il sito di SourceMaking suggerito da Matthieu è anche buono.