AS3でゲッター/セッターを合成
-
20-09-2019 - |
質問
AS3でゲッター/セッターを合成する方法はありますか?それはあなたが公開したいことを、特に数値計算(MVCパターンのモデル)で、あなたが変数のたくさんのクラスを持っていることは非常に一般的です。ゲッター/セッターを生成することを可能にするのObjective-Cでのsynthesizeプロパティのようなものが、ありますか?
おかげで、
ナバ
解決
EDIT:あなたはIDEを使用する場合は(日食)。あなたはクラス - >ソース - > GetterおよびSetterの生成
上で右クリックを行くことができますこれはのsynthesizeと同じ使用ではありませんが、ちょうどそれらを公開するとgetMethod()メソッドの表記を使用する必要がない場合は、それはあなたがキーワードでメソッドを宣言することができ、このように/セットを取得。
public function get example() : int
{
return example;
}
public function set example( value : String ) : void
{
example = value;
}
あなたがアクセスした時間がそれを使用すると、彼らが公共だったとメソッドの代わりに直接アクセスのと呼ばれるかのようにあなたは、変数を使用することができます
他のヒント
あなたは正規表現を試すことができます。 にこれを実行する前にバックアップを取ります。
あなたのprivate
変数が_str
名前が付けられ、あなたはそれがpublic
名前を付けるstr
ゲッター/セッターだたいている場合は、たとえば、次のようなパターンを使用することができます。 Flex BuilderでのCtrl-Fをヒット(またはEclipse)、正規表現のチェックボックスにチェックを入れ、検索に次のパターンを追加し、それぞれの入力フィールドを交換してください。今セッターとゲッターを生成するために、「置き換え」プロパティの宣言を見つけるために、「検索」ヒットとヒットます。
^((\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 Builder 3 IDEを使用しているものについては、プラグインは、例えば、コードスニペットを作成および配置するためのありますここに:ます。http://www.insideria。 COM / 2008/04 /フレックスビルダー - 機能強化 - スニペット-と-todo.htmlというを(そのサイト上でコンパイル他のいくつかの小さいながらも便利なツールがあります)。
これらは、多かれ少なかれ、快適なゲッター/セッターの生成に使用することができます。
私はそこにいくつかの余分なコードを配置する必要がある場合は、私は唯一の明示的なgetterとsetterを作成します。あなたはゲッターとセッターを使用していない場合、それはカプセル化を壊すと言う人もあります。しかし、あなたがインターフェイスを変更せずに、後にゲッターとセッターを追加することができる言語で、私はこれはもはや真実であるとは思いません。彼はプレーンな変数割り当てやVARNAME(:オブジェクト引数):設定した機能使用している場合は、ユーザーに、それは完全に透過的です。空白を
そしてまた、ゲッターとセッターのが既に存在している以外(あなたが変数に[Bindable](つまり、明示的なイベント名なし)を作る場合、あなたもそれに気付いwihtout、コンパイラが変数のgetterとsetterを作成することを、心に留めコース)。これはところで、ゲッターとセッター関数を宣言インタフェースを実装するための迅速&汚い方法です。
あなたはちょうどそれを公共の財産を作る場合は、ゲッターとセッターを心配する必要はありません。
public var str:String;
あなたがプロパティの変更のことは自分を通知するイベントディスパッチの線に沿って何かを必要とする場合は、しかし、あなたはそれを自分でコーディングする必要があります。うまくいけば、あなたが使っているものは何でもIDEあなたのためにこの種のコードを生成することで助けるかもしれない、またはあなたがDIEがあなたのために注入できるコードスニペットのいくつかの種類を設定する必要があるかもしれません。
あなたは、あなたが道をあなたの問題を引き起こすだろう何かの名前を変更する欠場することができますバインドされている場合は、コピーを避けて貼り付けます。