2011-06-20 5 views

答えて

4

のようにアクセスできます。値オブジェクトは実際にはデータオブジェクト以外のものではありません。私の意見では、バリューオブジェクトにいくつかのメソッドを持たせても構いませんが、利便性のために存在し、実際には何も振る舞いません。このクラスは、私が[Bindable]タグを追加した理由で、デフォルトでは変更可能であることを

[Bindable] 
public class PersonVO { 
    public var firstName:String; 
    public var lastName:String; 

    public function PersonVO(firstName:String, lastName:String) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
    } 

    public function clone():PersonVO { 
     return new PersonVO(firstName, lastName); 
    } 
} 

注:たとえば、ここではVOの例があります。あなたはこのクラスでデータバインディングを使いたいと思うかもしれません。そのためには[Bindable](またはそれに相当するもの)が必要です。

多くの場合、不変の値オブジェクトが実際に好まれます。ここでは、可変VOを実装する方法を次のとおりです。

public class PersonVO { 
    private var _firstName:String; 
    private var _lastName:String; 

    public function PersonVO(firstName:String, lastName:String) { 
     _firstName = firstName; 
     _lastName = lastName; 
    } 

    public function get firstName():String { return _firstName; } 
    public function get lastName():String { return _lastName; } 
} 
+0

ありがとう、@Brian Genisio。さて、私はVOの明確な画像を持っています:) –

2

VOは、Javaのバックグラウンドのユーザーであれば、Beanに似ています。

public class UserVO 
{ 
    private var _name:String; 

    public function set name(value:String):void 
    { 
      _name = value; 
    } 

    public function get name():String 
    { 
      return _name; 
     } 
} 

ここで私用変数を宣言し、メンバー変数の値を設定するセッターとゲッターメソッドを提供します。これは推奨されていませんが、セッターメソッド内に値を割り当てる前に範囲チェックを実行できます。メンバーには、

var userVo:UserVO = new UserVO(); 
userVo.name = "some name"; 
+0

このWikipediaのリンクをチェックアウト:http://en.wikipedia.org/wiki/Data_transfer_objectを – midhunhk

+0

この非常に明確な説明は非常に@ silverbackありがとうございますが、FlexではVOはメソッドを持っていませんが、私はJavaのコンセプトを知りました。もう一度ありがとう:) –

+0

これらはあなたの通常の方法ではありません、彼らはミューテータと呼ばれています。 http://en.wikipedia.org/wiki/Mutator_method – midhunhk

関連する問題