Apache flex Flex中的值对象设计模式
我只是看看Flex中使用的设计模式。请告诉我关于价值对象设计模式以及它是如何在Flex中实现的。谢谢。如果您有Java背景,则A类似于bean。我会将VO编码为Apache flex Flex中的值对象设计模式,apache-flex,actionscript-3,design-patterns,Apache Flex,Actionscript 3,Design Patterns,我只是看看Flex中使用的设计模式。请告诉我关于价值对象设计模式以及它是如何在Flex中实现的。谢谢。如果您有Java背景,则A类似于bean。我会将VO编码为 public class UserVO { private var _name:String; public function set name(value:String):void { _name = value; } public function get n
public class UserVO
{
private var _name:String;
public function set name(value:String):void
{
_name = value;
}
public function get name():String
{
return _name;
}
}
这里我们声明私有变量,并提供setter和getter方法来设置成员变量的值。尽管不建议这样做,但您可以在setter方法内赋值之前执行范围检查。您可以通过以下方式访问成员:
var userVo:UserVO = new UserVO();
userVo.name = "some name";
值对象实际上只是一个数据对象。在我看来,在一个值对象上有一些方法是可以的。。。但它们的存在只是为了方便,并不真正增加任何行为。例如,以下是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; }
}
下面的网站值得一看:查看这个维基百科链接:非常感谢@silverback提供了如此清晰的解释,但在Flex中,VO没有方法,但我开始了解Java中的概念。再次感谢:)这些不是你的常规方法,它们被称为变异子。嘿@silverback,再次感谢你。我对这些变异方法知之甚少。现在我知道:)@Kishor Kumar:Value对象可以有方法。只是不要给他们增加行为。让他们成为方便的方法。。。像
clone()
非常感谢@Brian Genisio。现在,我已经清楚地了解了VO:)