0

いくつかのObjectiveCコードをJavaに移植しています。Cメソッドの1つは次のようになります。

void method(){

static int variable;

...

}

これについての私の理解では、変数の有効期間は、含まれているコンパイルユニットの実行期間と同じですが、メソッドにのみ表示されます。AFAIK、Javaにはこれに相当するものがないので、クラスレベルの静的変数を使用して作業を行うことを検討しています。変数の可視性が広がり、その結果として保守性が低下するリスクは理解していますが、クラスの他のすべてのメソッドの衝突を注意深くチェックすれば、賢明なコメントでそれを処理できます。

私は何かが足りないのですか?私が考慮すべき他のリスクはありますか?

SOへの貢献に感謝します。

乾杯

サイモン

4

1 に答える 1

1

私は何かが足りないのですか?私が考慮すべき他のリスクはありますか?

どの状態が論理的に一部であるかを実際に検討する必要があります。それは実際には、それを含むクラスのインスタンスの状態の一部ですか?その場合は、インスタンス変数にします。タイプ自体の論理的な状態ですか?もしそうなら、静的変数は合理的です-しかし、静的変数はしばしばテスト容易性、スレッド化などの敵です。

それは実際には論理的にのクラスの状態の一部ですか?おそらくまだ存在しない新しいものですか?たとえば、その新しいクラスのインスタンスへの静的な最終参照が必要になる場合があります。

基本的に、状態の自然な位置が変数の位置を通知するようにします。

于 2012-08-22T18:55:39.807 に答える