Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    residenza
    Usa
    Messaggi
    440

    Best practices per la OOP in ES6, istanziazione di oggetti dentro altri oggetti tramite costruttore

    Ciao, in ES6 è possibile e giusto istanziare un oggetto dentro un altro oggetto?

    Vorrei evitare l'eredità con extends, oppure è necessaria?

    Mi interessa avere una correlazione tra un punto e la linea su cui si trova, così ho pensato di stanziarci dentro un oggetto Line così da poi poter risalire facilmente ai dati di quest'ultima.

    Oppure sarebbe meglio passarci solo l'ID come riferimento nel costruttore anzichè un oggetto?

    Questo qui sotto è solo un esempio, ho semplificato il più possibile il mio codice.

    codice:
    class Point {
        constructor(ID,Line,x,y) {
            this.ID = ID;
            this.Line = Line;
            this.x = x;
            this.y = y;
        }
    }
    
    class Line {
        constructor(ID,points) {
            this.ID = ID;
            this.points = points;
        }
    }
    
    let points = [];
    
    for... {
    points.push(new Point(...));
    }
    
    let point = new Point(0, new Line(...),2,3);
    let line = new Line(0,points);
    Ultima modifica di andbaz; 23-04-2017 a 09:55

  2. #2
    Dal punto di vista geometrico, per un punto passano infinite rette, quindi non ha senso che un punto abbia il riferimento alla Linea, ma è la Linea che deve avere il riferimento ai punti perchè 2 o + punti la identificano. Quindi, per quanto mi riguarda, puoi lasciare Point senza alcun riferimento. Il concetto di ereditarietà non c'entra nulla in questo caso: Linea non può essere pensato come un figlio di Point (e viceversa). Qui hai la composizione di Linea con Punto, considerato il fatto che Punto può esistere benissimo senza Linea, ma Linea no.
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.