Che tipo di problemi potrei affrontare se non userò i modelli di progettazione software? Puoi parlarmi dei problemi di approccio al design usando tecniche standard orientate agli oggetti?
Che tipo di problemi potrei affrontare se non userò i modelli di progettazione software? Puoi parlarmi dei problemi di approccio al design usando tecniche standard orientate agli oggetti?
Risposte:
Ti manca il punto.
I pattern di progettazione esistono intrinsecamente quando si progetta software, proprio come esistono schemi strutturali nel mondo. Anche se non conosci il nome delle cose, alla fine scoprirai che alcune strutture fisiche sono adatte a determinati problemi. Scoprirai che una forma triangolare di legno / barre di metallo / ecc. È una struttura molto stabile, ma solo su un piano. Scoprirai che i mattoni quadrati hanno alcuni vantaggi rispetto a quelli rotondi ...
Allo stesso modo, alcune strutture software sono in qualche modo uniche o ottimali. Alla fine li troverai e li userai a prescindere se conosci i nomi per loro. Questo è il nucleo di ciò che sono i modelli di progettazione: sono nomi di queste strutture che i programmatori esperti conoscono e usano comunque. Offre ai programmatori la possibilità di comunicare in modo molto più uniforme e succinto. Inoltre, consente ai programmatori di pensare più consapevolmente al concetto di pattern.
Quindi i due punti chiave che sto cercando di fare:
Coloro che non ricordano il passato sono condannati a ripeterlo.
Non dovrai affrontare problemi specifici diversi da quelli sollevati dal tuo progetto. E col tempo finirai per usare gli schemi senza esserne consapevole, hai appena trascorso del tempo a capirli da solo. Conoscere in anticipo i modelli semplifica la loro individuazione nel design e porta il grande vantaggio che sono dimostrati da un numero di individui.
Tutto ciò che viene sviluppato oggi si basa in gran parte su conoscenze precedenti, non avrebbe senso ignorarlo. Immagina di costruire un grattacielo oggi senza conoscere i problemi che le persone hanno costruito cattedrali centinaia di anni fa.
Che tipo di problemi potrei affrontare se non userò i modelli di progettazione software?
Avrai il problema di non poter scrivere alcun software.
Le variabili sono un modello di progettazione.
I metodi sono un modello di progettazione.
Gli operatori - addizione, sottrazione, ecc. - sono un modello di progettazione.
Le dichiarazioni sono un modello di progettazione.
I valori sono un modello di progettazione.
I riferimenti sono un modello di progettazione.
Le espressioni sono un modello di progettazione.
Le lezioni sono un modello di progettazione.
...
Tutto ciò che fai in programmazione in ogni momento è un modello di progettazione . Il più delle volte il modello è così radicato nel tuo pensiero che hai smesso di pensarlo come "un modello di design". Le cose che devi imparare come "il modello singleton" e così via sono semplicemente modelli che non sono stati (ancora) elaborati in qualsiasi linguaggio tu stia usando.
Puoi parlarmi dei problemi di approccio al design usando tecniche standard orientate agli oggetti?
No. Non ho idea di cosa significhi questa domanda. I modelli di progettazione sono "tecniche standard orientate agli oggetti" - questo è ciò che li rende modelli di progettazione . Un modello di progettazione è una tecnica standard per risolvere un problema particolare, in particolare (anche se non necessariamente ) in un linguaggio orientato agli oggetti.
The things that you have to learn like "the singleton pattern" and so on are simply patterns that haven't (yet) been baked into whatever language you're using.
- Questa è (quasi) la definizione di un modello di progettazione - un costrutto di codice flessibile / facilmente riutilizzabile usato per superare una limitazione nel linguaggio stesso, che è facile da comunicare agli altri. Una volta che fa parte del linguaggio, non è più un modello di progettazione.
Comprendere il punto di un modello di progettazione è più importante che utilizzarlo per la lettera. Alcuni schemi sono, IMO, sciocchi, almeno nei paradigmi linguistici a cui sono abituato. IMO, un programmatore che usa semplicemente i modelli di progettazione alla cieca e senza capirli davvero è un programmatore peggiore di quello che vorrebbe pensare attraverso le cose da solo. Ma qualcuno che si familiarizza con le idee e poi decide da solo se valgono la pena è probabilmente un programmatore molto più forte di entrambi.
Detto questo, non ho idea! @ # $ Ing idea di quale sia il punto del peso mosca e non mi vergogno di ammetterlo. (vedi i commenti per un'altra voce di Wikipedia che ha aiutato molto)
Raccomando la voce di Wikipedia sui modelli di progettazione. È scritto in modo molto conciso e chiaro. Molto utile per farsi un'idea del perché uno potrebbe disturbare con un determinato modello di progettazione o meno. Personalmente tendo a trovare le più semplici le più utili e non ci penserei due volte a modificare una data implementazione di qualsiasi modello per soddisfare le mie esigenze.
Sono idee, non progetti. In alcune lingue non sono affatto buone idee. In altri, sono giustamente visti come kludges per superare i punti deboli del design di una lingua che potrebbero essere meglio compensati attraverso una minore complessità. Indipendentemente da ciò, non fa male esaminarli e cercare di capire le sfide che devono superare prima di decidere le proprie soluzioni preferite.
Che tipo di problemi dovrai affrontare? Potresti perdere opportunità e dedicare più tempo ai problemi di quanti ne hai bisogno a meno che tu non sia un genio della programmazione che ha già capito tutto. È importante mantenere un occhio critico sulle idee di programmazione popolari, ma non fa mai male capire cosa pensano le persone che stanno risolvendo perché ciò darà maggiore chiarezza alle tue soluzioni / approcci preferiti.
Il problema principale che dovrai affrontare è che reinventerai la ruota . Sono chiamati modelli perché appaiono spesso e in modo prevedibile.
Anche se segui i modelli di progettazione potresti finire con un cattivo design. I modelli di design sono naturali e finirai per usarne un po 'nel tuo design. Dovrai fare del tuo meglio per non usare nessuno degli schemi. Non c'è motivo di condannare i modelli di design, ciò che è più importante è scegliere i modelli giusti per le tue esigenze
Stai usando sempre modelli di design senza accorgertene. Molte librerie standard in lingue popolari sono progettate tenendo conto dei modelli di progettazione. Un esempio è la FileReader
libreria di Java che è stata progettata utilizzando il modello di progettazione del decoratore . Ora parlando del tuo proprio codice, non si è costretti a utilizzare modelli di progettazione (nella maggior parte dei casi). Un modello di progettazione è una "soluzione riutilizzabile a un problema che si verifica comunemente" , il che significa che ti aiuterà a scrivere codice più pulito e più gestibile, quindi dipende da te quanto vuoi evitare di finire con il codice spaghetti.