自从 AS3 出现以来,我一直这样工作:
private var loggy:String;
public function getLoggy ():String
{
return loggy;
}
public function setLoggy ( loggy:String ):void
{
// checking to make sure loggy's new value is kosher etc...
this.loggy = loggy;
}
并避免像这样工作:
private var _loggy:String;
public function get loggy ():String
{
return _loggy;
}
public function set loggy ( loggy:String ):void
{
// checking to make sure loggy's new value is kosher etc...
_loggy = loggy;
}
我已经避免使用 AS3 的隐式 getter/setter 部分,这样我就可以开始输入“get..”,内容辅助将为我提供所有 getter 的列表,同样也是我的 setter 的列表。我也不喜欢代码中的下划线,这让我关闭了隐式路由。
另一个原因是我更喜欢这样的感觉:
whateverObject.setLoggy( "loggy's awesome new value!" );
to this:
whateverObject.loggy = "loggy's awesome new value!";
我觉得前者更好地反映了代码中实际发生的情况。
我正在调用函数,而不是直接设置值。
安装 Flash Builder 和出色的新插件后源友 http://www.elementriver.com/sourcemate/(这有助于将 FDT 著名的一些有用功能引入 FB)我意识到,当我使用 SourceMate 的“生成 getter 和 setter”功能时,它会使用隐式路由自动设置我的代码:
private var _loggy:String;
public function get loggy ():String
{
return _loggy;
}
public function set loggy ( loggy:String ):void
{
// do whatever is needed to check to make sure loggy is an acceptable value
_loggy = loggy;
}
我认为这些 SourceMate 人员必须知道他们在做什么,否则他们不会编写用于 AS3 编码的工作流程增强插件,所以现在我质疑我的方式。
所以我对你的问题是:任何人都可以给我一个充分的理由为什么我应该放弃我的显式 g/s 方式,开始使用隐式技术,并为我的私有变量拥抱那些臭烘烘的小_下划线?或者支持我这样做的理由?