Mnemonici per un insieme di principi di progettazione: responsabilità singola, aperto-chiuso, sostituzione di Liskov, segregazione dell'interfaccia, inversione di dipendenza
Sto solo progettando la mia applicazione e non sono sicuro di aver compreso correttamente SOLID e OOP. Le classi dovrebbero fare 1 cosa e farlo bene, ma d'altra parte dovrebbero rappresentare oggetti reali con cui lavoriamo. Nel mio caso eseguo un'estrazione di funzionalità su un set di dati e quindi …
Continuo a chiedermi se è legittimo usare verbi basati su sostantivi in OOP. Mi sono imbattuto in questo brillante articolo , anche se non sono ancora d'accordo con il punto. Per spiegare un po 'di più il problema, l'articolo afferma che non dovrebbe esserci, per esempio, una FileWriterclasse, ma poiché …
Oggi ho appena visto questo articolo che descriveva la rilevanza del principio SOLID nello sviluppo di F # F # e principi di progettazione - SOLID E affrontando l'ultimo - "Principio di inversione di dipendenza", l'autore ha detto: Da un punto di vista funzionale, questi contenitori e concetti di iniezione …
Secondo la documentazione Microsoft, l'articolo del principio SOLID di Wikipedia o la maggior parte degli architetti IT, dobbiamo garantire che ogni classe abbia una sola responsabilità. Vorrei sapere perché, perché se tutti sembrano essere d'accordo con questa regola nessuno sembra essere d'accordo sui motivi di questa regola. Alcuni citano una …
Ho trovato i principi SOLID abbastanza utili quando si pensa al design orientato agli oggetti. Esiste un insieme simile / equivalente di principi indipendenti dalla lingua su misura per la programmazione funzionale?
Nelle nostre applicazioni per lo più grandi, di solito abbiamo solo alcune posizioni per "costanti": Una classe per GUI e costanti interni (titoli delle schede, titoli delle caselle di gruppo, fattori di calcolo, enumerazioni) Una classe per tabelle e colonne di database (questa parte è generata da codice) più nomi …
Contesto In Clean Code , pagina 35, si dice Ciò implica che i blocchi all'interno delle istruzioni if, else, while, e così via dovrebbero essere lunghi una riga. Probabilmente quella linea dovrebbe essere una chiamata di funzione. Questo non solo mantiene piccola la funzione che racchiude, ma aggiunge anche valore …
Diciamo, ad esempio, che hai un'applicazione con una classe ampiamente condivisa chiamata User. Questa classe espone tutte le informazioni sull'utente, il loro ID, nome, livelli di accesso a ciascun modulo, fuso orario ecc. I dati dell'utente sono ovviamente ampiamente referenziati in tutto il sistema, ma per qualsiasi motivo, il sistema …
Chiuso . Questa domanda è basata sull'opinione . Al momento non accetta risposte. Vuoi migliorare questa domanda? Aggiorna la domanda in modo che possa essere risolta con fatti e citazioni modificando questo post . Chiuso 4 anni fa . Probabilmente considererei un odore di codice o anche un anti-pattern avere …
Stavo seguendo questa domanda molto votata su una possibile violazione del principio di sostituzione di Liskov. So qual è il principio di sostituzione di Liskov, ma ciò che non è ancora chiaro nella mia mente è ciò che potrebbe andare storto se io come sviluppatore non penso al principio durante …
SOLID include il principio di sostituzione di Liskov che ha l'idea che "gli oggetti in un programma dovrebbero essere sostituibili con istanze dei loro sottotipi senza alterare la correttezza di quel programma". Poiché le classi statiche con metodi statici (un po 'come la Mathclasse) non hanno affatto istanze, il mio …
Capisco che SOLID dovrebbe realizzare e utilizzarlo regolarmente in situazioni in cui la modularità è importante e i suoi obiettivi sono chiaramente utili. Tuttavia, due cose mi impediscono di applicarlo in modo coerente su tutta la mia base di codice: Voglio evitare l'astrazione prematura. Nella mia esperienza, disegnare linee di …
Di recente ho avuto una discussione con un mio amico su OOP nello sviluppo di videogiochi. Stavo spiegando l'architettura di uno dei miei giochi che, con sorpresa del mio amico, conteneva molte piccole classi e diversi livelli di astrazione. Ho sostenuto che questo è stato il risultato del mio concentrarsi …
Ho lavorato per due anni in una grande banca d'investimento. Ho realizzato alcuni progetti tecnici con il desiderio di creare il codice più ottimizzato, rispettando i buoni modelli di progettazione adattati, il principio SOLID, la legge di demeter ed evitando ogni sorta di codici duplicati ... Quando la consegna in …
Diciamo che ho un'interfaccia FooInterfaceche ha la seguente firma: interface FooInterface { public function doSomething(SomethingInterface something); } E una classe concreta ConcreteFooche implementa tale interfaccia: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } Vorrei ConcreteFoo::doSomething()fare qualcosa di unico se viene passato un tipo speciale di SomethingInterfaceoggetto …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.