4

我不明白 ActionScript3 中的值对象和类在结构上有何不同。

如果您决定将任何课程称为 VO,是否可以将其称为 VO?

谢谢。

4

1 回答 1

6

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

actionscript 类可以包括字段(vars)、属性(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);

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

于 2010-01-09T06:50:30.040 回答