Qual è il diverso tra oggetto Value e una classe generica in AS3?
-
19-09-2019 - |
Domanda
Non capisco cosa sia strutturalmente diverso tra un oggetto di valore e una classe in ActionScript3.
Qualche lezione può essere un VO se decidi di chiamarla?
Grazie.
Soluzione
Valuta oggetto (VO) è un modello di progettazione utilizzato per trasferire i dati tra i sottosistemi dell'applicazione del software.
Una classe ActionScript può includere campi (vari), proprietà (getter/setter) e metodi. L'oggetto Valore a termine si riferisce alle classi utilizzate dai framework (come Cairngorm) per archiviare e passare i dati tra componenti e moduli. Queste classi fungono da modelli per contenere i dati e generalmente non contengono funzioni diverse da getter/setter.
Il framework di Cairngorm ha a IvalueObject Interfaccia che non include alcun metodo.
È un'interfaccia marker che migliora la leggibilità del codice identificando le classi all'interno di a
Cairngorm
Applicazione che devono essere utilizzate come oggetti di valore per il passaggio di dati tra livelli di un'applicazione.
L'oggetto Value è un termine sciolto in ActionScript. Il Riferimento in lingua AS3 qui ha usato questo termine per un oggetto che è passato al costruttore di una classe per inizializzare le sue proprietà.
class Circle extends Shape
{
public var bgColor:Number = 0xFFFFFF;
public var radius:Number = 0;
public var xCenter:Number = 0;
public var yCenter:Number = 0;
public function Circle(initObj:Object)
{
//initialize properties from the value object.
for(var i:String in initObj)
{
this[i] = initObj[i];
}
draw();
}
public function draw():void
{
graphics.beginFill(bgColor);
graphics.drawCircle(xCenter, yCenter, radius);
graphics.endFill();
}
}
var firstInitObj:Object = new Object();
firstInitObj.bgColor = 0xFF0000;
firstInitObj.radius = 25;
firstInitObj.xCenter = 25;
firstInitObj.yCenter = 25;
//pass the value object to the constructor.
var firstCircle:Circle = new Circle(firstInitObj);
L'uso dell'oggetto valore consente agli utenti della classe di inizializzare solo quelle proprietà che desiderano. Un'alternativa a questo metodo (più robusto e meno incline a un IMO) è specificare ciascuna proprietà come argomenti al costruttore e assegnare loro valori predefiniti.