La progettazione orientata agli oggetti è il processo di pianificazione di un sistema di oggetti interagenti allo scopo di risolvere un problema software.
Sto scrivendo un gioco in Typescript, e ho deciso di provare ad aderire all'idea di " programmazione basata su interfaccia ", in cui si scrive codice basato su un'interfaccia, anziché sull'implementazione, di un oggetto. Ho scritto un buon numero di interfacce e classi che le implementano, poi ho fatto un …
Ho difficoltà a definire questo modello di dati che ho riscontrato lavorando su diverse applicazioni. Consiste in: Un tipo di oggetto composto da molti oggetti stessi Un secondo tipo di oggetto, in cui ogni istanza "ha molti" del primo oggetto E, ciascuno dei sotto-oggetti del primo oggetto è modificabile per …
Nel mio codice ci sono circa sette posti in cui sollevo un'eccezione. Tutte queste eccezioni sono trattate allo stesso modo: stampare un errore nel file di registro, ripristinare lo stato del software predefinito ed uscire. Durante la revisione del codice il mio ingegnere senior, che apprezzo molto, ha detto che …
Recentemente ho letto Clean Code e vari articoli online su SOLID, e più ne leggo, più mi sento come se non sapessi nulla. Diciamo che sto costruendo un'applicazione web usando ASP.NET MVC 3. Diciamo che ho un UsersControllercon Createun'azione come questa: public class UsersController : Controller { public ActionResult Create(CreateUserViewModel …
In un libro C ++, l'autore afferma che non abbiamo più bisogno di una funzione con un lungo elenco di parametri perché la maggior parte dei parametri può essere rifattorizzata in variabili di stato in una classe. D'altra parte, un libro di programmazione funzionale afferma che le variabili di stato …
Di recente ho apportato alcune importanti rifattorizzazioni al mio codice. Una delle cose principali che ho cercato di fare è stata quella di dividere le mie classi in oggetti dati e oggetti worker. Questo è stato ispirato, tra le altre cose, da questa sezione di Clean Code : ibridi Questa …
Ho una classe che calcola il reddito annuo netto dei lavoratori. Ha una costante che rappresenta una percentuale fiscale. Ma un giorno l'aliquota fiscale è cambiata, quindi devo correggere il codice. L'atto di fissare questa costante indica una violazione del principio aperto-chiuso , poiché postula che una classe dovrebbe essere …
Ho un'applicazione che accetta un intero come input e basato sull'input chiama metodi statici di diverse classi. Ogni volta che viene aggiunto un nuovo numero, è necessario aggiungere un altro caso e chiamare un metodo statico diverso di una classe diversa. Ora ci sono 50 casi nello switch e ogni …
(Ho visto questa domanda , ma la prima risposta riguarda le proprietà automatiche più che la progettazione, e la seconda dice di nascondere il codice di archiviazione dei dati al consumatore , che non sono sicuro di ciò che voglio / il mio codice fa, quindi mi piacerebbe sentire qualche …
Sto affrontando problemi con ciò che ritengo sia troppa astrazione nella base di codice (o almeno affrontarla). La maggior parte dei metodi nella base di codice è stata astratta per includere il genitore più alto A nella base di codice, ma il figlio B di questo genitore ha un nuovo …
La mia azienda sta riscrivendo la nostra applicazione Web da zero. È un'applicazione di livello aziendale di grandi dimensioni con un dominio complesso nel settore finanziario. Stiamo usando un ORM (Entity framework) per la persistenza. In sostanza, metà delle nostre applicazioni si concentra sulla raccolta di dati grezzi dall'utente, la …
Ho letto questa risposta: https://softwareengineering.stackexchange.com/a/234254/173318, per favore, correggi la mia comprensione. Le regole aziendali si riferiscono all'elenco delle fasi dell'attività nel mondo reale (nessun codice). Business Logic si riferisce al processo di conversione delle regole aziendali in codici e questi gruppi / tipi di codici indirizzati come "Logica aziendale". E …
Mi chiedevo che cosa rende speciale Iterator rispetto ad altri costrutti simili, e che ha reso la Banda dei Quattro elencarlo come un modello di progettazione. L'iteratore si basa sul polimorfismo (una gerarchia di raccolte con un'interfaccia comune) e sulla separazione delle preoccupazioni (l'iterazione sulle raccolte dovrebbe essere indipendente dal …
Dopo circa un mese dalla lettura e dalla ricerca di DDD, ho deciso di iniziare il mio progetto e ho creato DDD con questi contesti limitati> clienti Prodotti Ordini Fatturazione Ogni contesto limitato ha API di riposo come livello di presentazione, livello di dominio, livello persistente. Fin qui tutto bene, …
Esistono tre modi comuni, AFAIK, per implementare la riusabilità quando si tratta di OOP Eredità: di solito per rappresentare una relazione (un'anatra è un uccello) Composizione: di solito per rappresentare una relazione (una macchina ha un motore) Tratti (ad esempio la parola chiave tratto in PHP): ... non ne sono …
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.