In Java in particolare, ma probabilmente anche in altre lingue: quando sarebbe utile avere due riferimenti allo stesso oggetto? Esempio: Dog a = new Dog(); Dob b = a; C'è una situazione in cui ciò sarebbe utile? Perché questa sarebbe una soluzione preferita da usare aogni volta che vuoi interagire …
Userò una descrizione indipendente dal linguaggio di monadi come questa, descrivendo prima i monoidi: Un monoide è (approssimativamente) un insieme di funzioni che accettano un tipo come parametro e restituiscono lo stesso tipo. Una monade è (approssimativamente) un insieme di funzioni che accettano un tipo di wrapper come parametro e …
Supponiamo di avere due interfacce: interface Readable { public void read(); } interface Writable { public void write(); } In alcuni casi gli oggetti di implementazione possono supportare solo uno di questi, ma in molti casi le implementazioni supporteranno entrambe le interfacce. Le persone che usano le interfacce dovranno fare …
È l' architettura di Entity Sistema componenti object oriented, per definizione? Mi sembra più procedurale o funzionale. La mia opinione è che non ti impedisce di implementarlo in un linguaggio OO, ma non sarebbe idiomatico farlo in modo fermamente OO. Sembra che ECS separa i dati (E & C) dal …
Sono un programmatore C ++ di livello principiante, ma capisco abbastanza bene i concetti del linguaggio. Quando ho iniziato a studiare librerie C ++ esterne, come SDL, OpenGL (forse anche qualcos'altro), con mia grande sorpresa ho scoperto che non usano affatto concetti C ++. Ad esempio, né SDL, né OpenGL …
Ho analizzato molte teorie su ciò che è l'incapsulamento e le tre tecniche di attuazione, che sono Associazione, Aggregazione e Composizione. Quello che ho trovato è : incapsulamento L'incapsulamento è la tecnica per rendere privati i campi in una classe e fornire accesso ai campi con metodi pubblici. Se un …
In Java, C # e molti altri linguaggi fortemente tipizzati e controllati staticamente, siamo abituati a scrivere codice in questo modo: public void m1() { ... } protected void m2() { ... } private void m2() { ... } void m2() { ... } Alcune lingue controllate dinamicamente non forniscono …
Gli oggetti mai? Bene, quasi mai Nella sezione VIEWPOINT di Communications of The ACM, ho trovato un articolo interessante intitolato " Oggetti mai? Bene, quasi mai ". È una prospettiva radicalmente diversa rispetto agli oggetti prima o agli oggetti in ritardo. Suggerisce "oggetti-mai" o forse "oggetti-scuola di specializzazione". L'autore ha …
C'è uno scopo per dichiarare un init()metodo per un tipo? Non sto chiedendo se dovremmo preferire init()un costruttore o come evitare di dichiarareinit() . Sto chiedendo se c'è qualche logica dietro la dichiarazione di un init()metodo (visto quanto sia comune) o se è un odore di codice e dovrebbe essere …
Qual è la differenza tra modelli e principi di progettazione orientata agli oggetti? Sono cose diverse? Per quanto ho capito, entrambi cercano di raggiungere un obiettivo comune (ad es. Flessibilità). Quindi posso dire che uno schema è un principio e viceversa? Principio di progettazione = SOLID (ovvero principio di inversione …
Ho capito che secondo il C ++ specifica non esiste una cosa come un "metodo", e alcuni (molti? La maggior parte?) C ++ i programmatori considerano "metodo" per essere un Java-ismo. D'altra parte, anche su un forum C ++ le persone sembrano parlare di metodi senza contrazioni. Sto cercando convenzioni …
Secondo Refactoring to Patterns : Quando una classe sta provando a fare troppo, spesso si presenta come troppe variabili di istanza. Quando una classe ha troppe variabili di istanza, il codice duplicato non può essere molto indietro. In che modo avere troppe variabili di istanza porta a un codice duplicato?
Ho letto che il principio di sostituzione di Liskov è violato se: I requisiti sono rafforzati, o Le post-condizioni sono indebolite Ma non riesco ancora a capire come questi due punti violerebbero il principio di sostituzione di Liskov. Qualcuno può spiegare con un esempio. In particolare, come una delle condizioni …
Allo stato attuale, questa domanda non è adatta al nostro formato di domande e risposte. Ci aspettiamo che le risposte siano supportate da fatti, riferimenti o competenze, ma questa domanda probabilmente solleciterà dibattiti, argomenti, sondaggi o discussioni estese. Se ritieni che questa domanda possa essere migliorata e possibilmente riaperta, visita …
Di recente ho iniziato a programmare in Groovy per un framework di test di integrazione, per un progetto Java. Uso Intellij IDEA con il plug-in Groovy e sono sorpreso di vedere un avvertimento per tutti i metodi che non sono statici e che non dipendono da nessun campo di istanza. …
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.