合成在AS3 getter / setter方法
-
20-09-2019 - |
题
有一种方法来合成getter / setter方法在AS3?这是很常见的,你必须有很多的变量一类,尤其是在数学计算(在MVC模式是Model),即要暴露。有什么样的Objective-C的合成特性,它允许生成getter / setter方法?
谢谢,
纳瓦
解决方案
编辑:如果你想使用的IDE(蚀)。你可以右击在类 - >来源 - >生成getter和setter
这是不作为合成一样使用,但如果你想只是为了揭露他们并没有使用实现getMethod()符号,它可以帮助你用声明的关键字的方法获取/设置这样的。
public function get example() : int
{
return example;
}
public function set example( value : String ) : void
{
example = value;
}
当你使用它,你访问你可以使用变量,好像他们是公众时间和方法将被调用,而不是直接访问
其他提示
您可以尝试正则表达式。的尝试此强>之前以一个备份。
举例来说,如果你的private
变量命名为_str
,你希望它是public
的getter / setter被命名为str
,您可以使用下面的模式。按下Ctrl-F在Flex Builder(或蚀),蜱正则表达式复选框,并添加以下模式来搜索和分别代替输入字段。现在点击“查找”,以查找财产申报并点击“替换”生成setter和getter。
^((\t)+)private\s+var\s+_(\w+):(\w+)\s*;\s*(\n)
$0$5$1public function set $3(value:$4):void$5$1{$5$1$2_$3 = value;$5$1}$5$5$1public function get $3():$4$5$1{$5$1$2return _$3;$5$1}$5$5
此图案上测试
private var _str:String;//indented by two tabs
和它成功生成:
private var _str:String;
public function set str(value:String):void
{
_str = value;
}
public function get str():String
{
return _str;
}
有关那些使用Flex生成器3 IDE,有插件,用于创建和放置的代码段,例如在这里: HTTP://www.insideria。 COM / 2008/04 /柔性建设者,增强-片段和-todo.html (也有在该网站上整理了一些其他小而有用的工具)
这些可被用于更多或更少的舒适吸气/ setter产生。
不过,我只有当我需要在那里放置一些额外的代码创建明确的getter和setter方法。还有一些谁说,如果你不使用getter和setter它打破封装。然而,在这里你可以在以后添加getter和setter不改变界面语言,我不认为这是真的了。给用户,如果他是使用一个普通的可变分配或设置的varName(:对象ARG):一个功能是完全透明的。空隙
和也记住,如果你犯了一个变量[绑定](即没有明确的事件名称),编译器创建了变量的getter和setter wihtout你甚至没有注意到它(除非已经有getter和的制定者课程)。这是BTW执行该声明getter和setter函数接口的快速和肮脏的方式
如果你只是使它成为一个公共财产,你不必担心getter和setter方法:
public var str:String;
不过,如果你需要一起事件派发通知的属性改变自己的行什么,你需要自己编写它。希望你使用任何IDE可以通过产生这样的代码,您的帮助,或者您可能需要建立某种形式的代码片断模具能为你注入。
避免副本,如果你能粘贴,你一定错过改变事物的名称,这将导致你发出的道路。