質問

ValueオブジェクトとActionScript3のクラスの間で構造的に異なることはわかりません。

あなたがそれを1つと呼ぶことに決めた場合、どのクラスもVOになることができますか?

ありがとう。

役に立ちましたか?

解決

値オブジェクト (VO)は、ソフトウェアアプリケーションサブシステム間でデータを転送するために使用される設計パターンです。

ActionScriptクラスには、フィールド(VARS)、プロパティ(ゲッター/セッター)、およびメソッドを含めることができます。用語値オブジェクトは、フレームワークによって使用されるクラスを指します( cairngorm)コンポーネントとモジュールにデータを保存および渡す。これらのクラスは、データを保持するためのテンプレートとして機能し、通常はゲッター/セッター以外の機能は含まれません。

cairngormフレームワークにはを持っています ivalueObject 方法は含まれていないインターフェイス。

これは、内部のクラスを識別することにより、コードの読みやすさを向上させるマーカーインターフェイスです Cairngorm アプリケーションのティア間でデータを渡すための値オブジェクトとして使用されるアプリケーション。

Valueオブジェクトは、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)に代わるものは、各プロパティをコンストラクターへの引数として指定し、デフォルト値をそれらに割り当てることです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top