Quanto spesso usi effettivamente schemi di progettazione? [duplicare]

6

Recentemente ho letto un libro sui modelli di design. Alcuni di essi sembrano molto utili in situazioni specifiche. Non sono sicuro di quanto saranno utilizzati nella codifica quotidiana. Quante volte usi schemi di progettazione nel tuo lavoro quotidiano? Dovrei provare a trovare le situazioni per applicarle?

    
posta Tom Squires 13.09.2011 - 12:20
fonte

5 risposte

14

Li uso al contrario. Principalmente per scopi di documentazione. Se dico che alcune classi sono un "singleton configuration holder", posso tranquillamente presumere che la maggior parte delle persone conoscerà ciò che la classe fa / è.

Non cerco davvero di adattare gli schemi di progettazione al mio codice. L'unica eccezione è la fase di progettazione, in cui è principalmente un antipasto di discussione, vale a dire. questa classe dovrebbe essere una fabbrica (perché sì ?, o perché no?).

    
risposta data 13.09.2011 - 12:27
fonte
6

I modelli di design sono eccezionali, per le situazioni specifiche che ne hanno bisogno. Non dovresti mai provare a trovare una situazione per applicarle, poiché spesso saprai quando devi applicarle comunque osservando un problema e pensando "Questo si adatta perfettamente al modello di progettazione singleton, forse dovrei risolverlo in questo modo ".

Non sono una taglia unica, ma sono incredibilmente utili. Finché comprendi cosa fanno e perché sono utili e perché occasionalmente non lo sono, vedrai le situazioni in cui puoi utilizzarli.

    
risposta data 13.09.2011 - 12:28
fonte
4

C'è un fenomeno psicologico chiamato " malattia dello studente med ", in cui una persona che studia un disturbo diventa convinto che lui stesso ne soffra. Apparentemente, è abbastanza comune.

Gli schemi di progettazione hanno un effetto simile sui programmatori. Apprende, per esempio, il modello della facciata e improvvisamente, ogni oggetto ha bisogno di una facciata. Sta mettendo le facciate sulle sue facciate. Follia.

Io stesso ho studiato i combinatori per le ultime settimane e - per completa coincidenza - ho trovato a destra e a sinistra gli usi.

In realtà sembra che tu abbia il problema opposto. Stai leggendo di schemi e pensieri, "Quando diavolo ne userò mai?"

Rispetto rispettosamente che, beh, forse è tu . Forse è perché non capisci abbastanza bene gli schemi, o perché la tua esperienza di programmazione non è stata abbastanza ampia da permetterti di vedere i modelli. Qualcosa.

La nozione di schemi di progettazione e gli stessi schemi sono apprezzati dai programmatori perché li abbiamo effettivamente incontrati, ancora e ancora. I modelli originali - come le funzioni e i cicli for - si sono presentati in linguaggio assembly e sono stati quindi integrati in linguaggi di livello superiore. Il gruppo successivo (principalmente i pattern GoF) non è ancora entrato in lingue ma sono di uso comune e i loro nomi sono nel vocabolario comune dei programmatori. All'orizzonte ci sono concetti che hanno fluttuato attorno al mondo accademico per un decennio o due (monadi, combinatori) e stanno appena iniziando a trovare le accettazioni nel mondo commerciale.

Il mio punto, e ne ho uno, è che se non fosse per molti, molti programmatori che usano modelli di progettazione ogni giorno, non dovrebbero essere modelli di progettazione; sarebbero solo un codice che qualcuno ha scritto e poi dimenticato.

    
risposta data 13.09.2011 - 12:59
fonte
2

I modelli di progettazione mettono un nome su costrutti di codice specifici che esistevano prima della pubblicazione del modello di progettazione.

Devi vederlo come una guida alla costruzione che aiuta le persone a lavorare insieme. E questo aiuta i principianti a vedere cosa funziona per situazioni specifiche e cosa possono fare.

Quindi, non è perché hai usato un pattern che la tua scelta era corretta e il tuo sound design.

    
risposta data 13.09.2011 - 12:59
fonte
1

Generalmente, se si progetta un sistema, si decide su un paio di posizioni in cui sono indicati modelli di progettazione "principali". Anche un'applicazione abbastanza grande avrà 2-5 di essi utilizzati al massimo. Uno medio ne utilizzerà uno o due. Quelli più piccoli spesso li eliminano del tutto o non rispettano uno standard vecchio come MVC o Observer.

Poi ci sono schemi di progettazione "minori". Come "blocco monouso", "flag taint" o "timeout counter" o "mi piace", che vengono utilizzati sempre. Direi che circa la metà delle funzioni in qualsiasi programma contiene almeno uno di questi modelli di progettazione minori.

    
risposta data 13.09.2011 - 12:46
fonte

Leggi altre domande sui tag