Value Object和AS3中的泛型类之间有什么不同?

Tho*_*mas 4 actionscript-3 value-objects

我不明白ActionScript3中的值对象和类之间在结构上有什么不同.

如果您决定将其称为一个类,那么任何类都可以成为VO吗?

谢谢.

Ama*_*osh 6

值对象(VO)是用于在软件应用程序子系统之间传输数据的设计模式.

actionscript类可以包括字段(变量),属性(getter/setter)和方法.术语值对象是指框架(例如Cairngorm)用于在组件和模块之间存储和传递数据的类.这些类充当保存数据的模板,通常不包含getter/setter以外的函数.

Cairngorm框架具有IValueObject接口,不包含任何方法.

它是一个标记接口,通过识别Cairngorm应用程序中的类来提高代码的可读性,这些类将用作在应用程序层之间传递数据的值对象.

值对象是actionscript中的松散术语.这里的AS3语言引用已将此术语用于传递给类的构造函数以初始化其属性的对象.

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);
Run Code Online (Sandbox Code Playgroud)

值对象的使用使类的用户只能初始化他们希望的那些属性.此方法的替代方法(更健壮且更不容易出错的一个imo)是将每个属性指定为构造函数的参数,并为它们分配默认值.