Ultimamente mi sono interessato ad alcuni concetti di programmazione funzionale. Ho usato OOP per un po 'di tempo ormai. Vedo come costruirò un'app abbastanza complessa in OOP. Ogni oggetto saprebbe come fare ciò che fa l'oggetto. O qualunque cosa faccia anche la lezione dei genitori. Quindi posso semplicemente dire Person().speak()di …
Un gruppo di amici e io abbiamo lavorato su un progetto per un po 'di tempo, e volevamo inventare un bel modo OOP di rappresentare uno scenario specifico per il nostro prodotto. Fondamentalmente, stiamo lavorando a un gioco infernale in stile Touhou e volevamo creare un sistema in cui potessimo …
Sto scrivendo un programma per simulare l' attività delle formiche in una griglia (PDF). La formica può muoversi, raccogliere oggetti e lasciarli cadere. Il problema è che mentre l'azione delle formiche e le posizioni di ciascuna formica possono essere facilmente seguite dagli attributi di classe (e possiamo facilmente creare molte …
Un giovane collaboratore che studiava OO mi ha chiesto perché ogni oggetto è passato per riferimento, che è l'opposto di tipi o strutture primitivi. È una caratteristica comune di linguaggi come Java e C #. Non sono riuscito a trovare una buona risposta per lui. Quali sono le motivazioni per …
Che è una pratica generalmente accettata tra questi due casi: function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } o function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } In altre parole, in genere è meglio passare interi oggetti o solo i campi necessari?
È vero che ignorare metodi concreti è un odore di codice? Perché penso che se hai bisogno di scavalcare metodi concreti: public class A{ public void a(){ } } public class B extends A{ @Override public void a(){ } } può essere riscritto come public interface A{ public void a(); …
Ho un pezzo di codice in cui eseguo l'iterazione di una mappa fino a quando una determinata condizione è vera e successivamente utilizzo quella condizione per fare altre cose. Esempio: Map<BigInteger, List<String>> map = handler.getMap(); if(map != null && !map.isEmpty()) { for (Map.Entry<BigInteger, List<String>> entry : map.entrySet()) { fillUpList(); if(list.size() …
La domanda sopra è un esempio astratto di un problema comune che riscontro nel codice legacy o, più precisamente, problemi derivanti da precedenti tentativi di risoluzione di questo problema. Mi viene in mente almeno un metodo .NET framework che ha lo scopo di risolvere questo problema, come il Enumerable.OfType<T>metodo. Ma …
A pagina 839 della seconda edizione, Steve McConnell sta discutendo tutti i modi in cui i programmatori possono "conquistare la complessità" nei grandi programmi. I suoi consigli culminano con questa affermazione: "La programmazione orientata agli oggetti fornisce un livello di astrazione che si applica contemporaneamente agli algoritmi e ai dati …
Mi sono imbattuto molto nel termine "programmazione su un'interfaccia anziché in un'implementazione" e penso di capire cosa significhi. Ma voglio essere sicuro di capire i suoi benefici e le sue possibili implementazioni. "Programmare su un'interfaccia" significa che, quando possibile, si dovrebbe fare riferimento a un livello più astratto di una …
Io e il mio collega abbiamo opinioni diverse sulla relazione tra classi di base e interfacce. Sono convinto che una classe non dovrebbe implementare un'interfaccia a meno che quella classe non possa essere utilizzata quando è richiesta un'implementazione dell'interfaccia. In altre parole, mi piace vedere il codice in questo modo: …
Ho cercato la forma completa di " OOPS " su Google , ma sfortunatamente ci sono molte risposte ambigue. Alcuni dicono che è " Sistemi ", e alcuni dicono che è " Struttura ", e alcuni lo hanno persino menzionato come " Sinossi ". Qualcuno può illuminarmi, per favore, per …
Supponiamo che io abbia un segmento di codice per connettermi a Internet e mostrare i risultati della connessione in questo modo: HttpRequest* httpRequest=new HttpRequest(); httpRequest->setUrl("(some domain .com)"); httpRequest->setRequestType(HttpRequest::Type::POST); httpRequest->setRequestData("(something like name=?&age=30&...)"); httpRequest->setResponseCallback([=](HttpClient* client, HttpResponse* response){ string responseString=response->getResponseDataString(); if(response->getErrorCode()!=200){ if(response->getErrorCode()==404){ Alert* alert=new Alert(); alert->setFontSize(30); alert->setFontColor(255,255,255); alert->setPosition(Screen.MIDDLE); alert->show("Connection Error","Not Found"); }else if((some …
public class MyClass { public object Prop1 { get; set; } public object Prop2 { get; set; } public object Prop3 { get; set; } } Supponiamo che io sono un oggetto myObjectdi MyClasse ho bisogno di ripristinare le sue proprietà, è meglio creare un nuovo oggetto o riassegnare ogni …
Supponiamo di voler fornire un'astrazione di un "conto" in una banca. Ecco un approccio, usando un functionoggetto in Python: def account(): """Return a dispatch dictionary representing a bank account. >>> a = account() >>> a['deposit'](100) 100 >>> a['withdraw'](90) 10 >>> a['withdraw'](90) 'Insufficient funds' >>> a['balance'] 10 """ def withdraw(amount): if …
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.