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 の暗黙的なゲッター/セッターの使用を部分的に避けたので、「get..」と入力し始めるだけで、コンテンツ アシストがすべてのゲッターのリストを表示し、セッターについても同様です。また、コード内のアンダースコアが嫌いで、暗黙的なルートをオフにしました。
もう1つの理由は、私がこの感じを好むということです:
whateverObject.setLoggy( "loggy's awesome new value!" );
これに:
whateverObject.loggy = "loggy's awesome new value!";
前者の方がコードで実際に何が起こっているかをよりよく反映していると思います。値を直接設定するのではなく、関数を呼び出しています。
Flash Builder と優れた新しいプラグイン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 の方法を放棄し、暗黙の手法を使い始め、プライベート変数に臭い小さな _underscores を採用する正当な理由を誰か教えてもらえますか? または、私が自分のやり方で物事を行う理由で私をバックアップしますか?