Domanda

Quando si tratta dell'uso di modelli di progettazione, sto indovinando che ci sono tre tipi di negozi.Quelli che non sanno un motivo se li ha colpiti in faccia questi di solito preferisco il Ctrl-C / Ctrl-V approccio al codice di riutilizzo.Coloro che trascorrono ore al giorno, cercando il loro codice legacy, nella speranza di realizzare una più grande modello - questi di solito trascorrono più tempo refactoring del codice di semplici programmi che vorresti mai essere speso in un centinaio di anni di manutenzione.E, infine, coloro che percorrono il sentiero di mezzo l'utilizzo di modelli quando fanno senso, di codifica e di ciò che viene prima per mini esposti.

Mi chiedo se qualcuno ha bloccato un buon approccio al pareggio di incorporazione di pattern di utilizzo nel ciclo di sviluppo del software.Inoltre, qual è la migliore risorsa sul Web per i modelli, le loro motivazioni e il loro uso corretto?

Grazie.

È stato utile?

Soluzione

Ci sono un sacco di 'modello' famiglie là fuori, ma fare la tua domanda suoi termini più ampi...

Mi raccomando:

Offline (i miei preferiti):

Offline (popolare):

  • Design Pattern GoF
  • Fowler Refactoring:Migliorare la Progettazione di Codice Esistente

Altri suggerimenti

Buon uso dei modelli dipende dalla conoscenza e dall'esperienza;non esiste una formula per farlo.Una buona cosa da fare è avere qualcuno che è esperto nell'applicazione di modelli di giudiziosamente a rivedere regolarmente il codice di tutti gli altri nella squadra per assicurarsi che non uso eccessivo o underusing modelli di progettazione.Non sono pre-cotto ricette - hanno bisogno di abilità per applicare in modo efficace e che deve essere appreso.

Il mio primo e migliore esposizione ai design pattern è il Portland Pattern Repository.

L'uso di "pattern" dipende da un elevato grado da

  1. il linguaggio utilizzato
  2. gli obiettivi di uno come ottiene.

Design pattern può essere denominato sopravvalutato in linguaggi come C++, Java e simili.In esse si nasconde l'inflessibilità introduce con tutti i tipi di problematiche di digitazione.Ecco un link su quale modello di "sopravvivere" in meno restrittive lingue:http://norvig.com/design-patterns/

Un altro esempio è l'aspect oriented programmming, in cui con fatica le cose sono "introdotto" in una lingua che non è "progettato" per farlo.

La filosofia che sta dietro agli strumenti utilizzati, ha una grande influenza anche.Basta confrontare diciamo media PHP o programmi di Visual Basic e soluzioni in Smalltalk, Common Lisp,Haskell e simili.

La sintassi elementi hanno un grande impatto anche.Vedrai tonnellate di simile loop diciamo C, C++ (iteratori), ma se vuoi guardare in languags che il supporto per funzioni di ordine superiore ti basta trovare un paio di passanti.

Poi devi vedere in che modo le persone fanno di accesso di programmazione, bottom-up o top-down, a fasi di crescita o di un edificio pyramides, o di qualsiasi altro individuo preferenze

Vi suggerisco di leggere il citato collegamento, e quindi controllare le implementazioni in "diverse lingue"....

Saluti Friedrich

Tutti l'utilizzo di modelli per tutto il tempo.Solo che forse non sai.Anche una cosa semplice come 'scorrere un elenco' è un motivo.

Penso che il modo migliore per incorporare i modelli nel vostro ciclo di lavoro, è solo per uso loro, e per fare riferimento a loro nome, quando si parla di loro e quando commentare il tuo codice.Speriamo che questo si tradurrà in una diffusione di conoscenza.

Così, ad esempio, avete notato che quello che fa è una grande misura per l'Osservatore.Dire al vostro collega "Ehi, questo sarà davvero facile da fare se si fanno di questo oggetto un Osservatore, e di questo oggetto, il suo soggetto."

Il tuo collega si capisce subito -- che i modelli di risparmiare tempo -- o si arriva a educarli, e accanto ora si parla di Osservatore capiranno subito.

E, allo stesso tempo, si sta diffondendo la conoscenza, e che sarà posto opportunità di utilizzare i nuovi modelli hanno imparato da voi.Questo vale in entrambi i modi, ovviamente.La prossima volta potrebbe essere li insegnamento si un nuovo modello.

Tutto questo viene fatto affidamento su il tuo collega non essendo il tipo che annuisce e fa finta di capire qualcosa quando non è così.Hai bisogno di loro per dire "Ehi, che hai citato Osservatore, non credo di sapere cos'è."

Penso che la migliore risorsa del web contenente informazioni circa i modelli e refactoring - http://sourcemaking.com

Io sono un grande fan della serie e di aver letto molti dei loro libri, così mi consiglia di Primo Capo Di Modelli Di Progettazione.È possibile leggere online tramite O'Reilly Safari Libreria, ma il disco copia è dotato di una grande modelli di poster troppo.

Io non potevo più d'accordo con il commento precedente.Io uso i modelli di progettazione dove posso, ma sempre contare su il resto del mio team per capire veramente i benefici di un particolare modello.Altrimenti si finisce con il brutto di codice e un leggero wrapper che assomiglia un po ' il modello.

Come parte http://www.developer.com ha un paio di articoli al mese, inerente la progettazione dei modelli e delle loro applicazioni.Buona fortuna!

Penso che sarebbe da raccomandare Refactoring:Migliorare la Progettazione di Codice Esistente.

Refactoring: Improving the Design of Existing Code
(fonte: 2020ok.com)

Un sacco di esempi di come implementare un uso ragionevole di modelli.

La definizione e l'originale risposta è l'origine del concetto, in Modelli di progettazione.Questo libro ha a che fare con il concetto molto theortical livello, piuttosto che la gestione di parlare che si è infiltrata nell'area.Il loro punto di vista è che il design pattern sono nomi comuni per le espressioni idiomatiche;essi elencano alcuni e giustificare le loro posizioni.

Evitare il "design pattern devo usare il" tipo di domanda, invece di trattare con il problema di come "Sono io, naturalmente, di entrare in un luogo conosciuto?Se è così, gli altri possono esperienza mi aiuti?".Modelli di progettazione, per me, non sono come i prefab componenti colla insieme per fare una soluzione.Sono solo indicazioni repository per quando ci si imbatte in una situazione simile a quello che gli altri hanno replicato, e dare dei nomi per permettere alle persone di vedere le situazioni in conversazione.

I Design patterns sono divertente che si conosce solo dove l'uso di un modello, quando si comprende pienamente applicabile modello.Cose come Strategia, Osservatore, Iteratore è possibile, aftera po ' di pratica, utilizzare senza pensare troppo duro.Se sei in C# si utilizza l'Iteratore per tutto il tempo (IEnumerable...) senza pensare ad esso come a un modello.

A mio parere, questi modelli semplici sono i migliori modelli.Hai già un lavoro da fare, e cercare di calzascarpe il tuo problema in uno schema dopo l'altro, quando non abbastanza fit è uno spreco di tempo, e i risultati in codice non valido.

Il mio consiglio è di guardare i diagrammi uml per un motivo, e se è abbastanza semplice, quindi provare e imparare abbastanza bene che è possibile richiamare più tardi.Un modello con un semplice contratto è probabile che sia più utile e più spesso.

Vorrei andare con la "Banda dei Quattro" Design Pattern libro stesso

Sono d'accordo con questi riferimenti, ma non sono newbie friendly.Di avvio rapido apprendimento di modelli di progettazione nel modo più semplice :

Capo Primo :modello di progettazione

Quindi il tuo grado di controllare le più avanzate libri una volta che hai ottenuto l'immagine grande (un sacco di esempi pratici ;-))

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top