Объект-значение - это не что иное, как объект данных.На мой взгляд, нормально иметь несколько методов для объекта-значения ... но они существуют для удобства и на самом деле не добавляют никакого поведения.Например, вот пример VO:
[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);
}
}
Обратите внимание, что этот класс является изменяемым по умолчанию, поэтому я добавил тег [Bindable
].Вы, вероятно, захотите использовать привязку данных с этим классом, и вам нужно [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; }
}