Con OOP, qual è il modo consigliato per passare un'istanza di una classe che è limitata, come proprietà di sola lettura o meno metodi disponibili.
Di seguito è riportato un Vector2
, che contiene più metodi per manipolare le sue proprietà come i setter o la funzione add
.
class Vector2 {
private _x: number = 0;
private _y: number = 0;
public get x () {
return this._x;
}
public get y () {...}
public set x (x: number) {
this._x = x;
}
public set y (y: number) {...}
public add (v: Vector2) {
this._x += v.x;
this._y += v.y;
}
}
Come potrei passare una versione limitata di questa istanza, ad esempio un% di sola lettura% con solo i getter disponibili. La soluzione che ho avuto è quella di creare un'altra classe separata che chiamerò Vector2
che avvolge un Vector2RO
, ma sento che potrebbe esserci un modo "migliore" o più "elegante" per farlo.
class Vector2RO {
private _v: Vector2;
public constructor (v: Vector2) {
this._v = v;
}
public get x () {
return this._v.x;
}
}