有一种方法来合成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可以通过产生这样的代码,您的帮助,或者您可能需要建立某种形式的代码片断模具能为你注入。

避免副本,如果你能粘贴,你一定错过改变事物的名称,这将导致你发出的道路。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top