Domande taggate «solid»

Mnemonici per un insieme di principi di progettazione: responsabilità singola, aperto-chiuso, sostituzione di Liskov, segregazione dell'interfaccia, inversione di dipendenza


5
È utile per il mini-refattore del codice nella speranza di migliorare la qualità o è semplicemente "spostare il codice in giro" senza molti vantaggi?
Esempio Mi sono imbattuto in un codice monolitico che fa "tutto" in un unico posto - caricando i dati dal database, mostrando markup HTML, fungendo da router / controller / azione. Ho iniziato ad applicare SRP spostando il codice del database nel suo file, fornendo una migliore denominazione delle cose, …



4
Come specificare una precondizione (LSP) in un'interfaccia in C #?
Diciamo che abbiamo la seguente interfaccia: interface IDatabase { string ConnectionString{get;set;} void ExecuteNoQuery(string sql); void ExecuteNoQuery(string[] sql); //Various other methods all requiring ConnectionString to be set } Il presupposto è che ConnectionString deve essere impostato / inizializzato prima di poter eseguire uno qualsiasi dei metodi. Questa condizione preliminare può essere …

9
SOLIDI vs. metodi statici
Ecco un problema che mi capita spesso di incontrare: lasciare che ci sia un progetto di negozio web che abbia una classe di prodotto. Voglio aggiungere una funzione che consente agli utenti di pubblicare recensioni su un prodotto. Quindi ho una classe Review che fa riferimento a un prodotto. Ora …







2
Principio di segregazione dell'interfaccia: cosa fare se le interfacce presentano una sovrapposizione significativa?
Dallo sviluppo software agile, principi, modelli e pratiche: Pearson New International Edition : A volte, i metodi invocati da diversi gruppi di client si sovrappongono. Se la sovrapposizione è piccola, le interfacce per i gruppi dovrebbero rimanere separate. Le funzioni comuni dovrebbero essere dichiarate in tutte le interfacce sovrapposte. La …


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.