- PR -

Javaコードスタイル

投稿者投稿内容
kaho
会議室デビュー日: 2001/08/14
投稿数: 12
投稿日時: 2002-02-26 01:55
> staticに大きなオブジェクトを入れながら、
> nullでオブジェクトを消しに行くようなケースがあるのですか?

コードスタイルには直接関係しませんが、私のケースを。Javaアプリケーションの場合です。

JFileChooserはファイルを読み込むときにも保存するときにも使用するのでアプリケーションの
staticフィールドに入れて使い回すことがありますが、ある処理の後はもう当分使わないという
ことが分かっていることも結構あります。例えばファイルを最後に指定した後は単にそのファイルに
フィルターをかけてレポートをコマンドラインに出して終了する場合など。
JFileChooserオブジェクト自体は重くなくともsetAccessoryメソッドで思わぬ
大きなオブジェクトの参照を抱えていることもあるので、そのような場合はGCに処理してもらい
たいというケースがありました。(例えば画像ファイルのプレビューを表示させているとき)
(万一次回JFileChooserオブジェクトが必要とされたときの場合に使用する前にstatic
メソッドでインスタンス化を保証してNullPointerExceptionを吐かないようにはさせています)

これ以外でもいくつか仕様変更で妥協せざるを得なかった汚い書き方の場合とかがありましたが
それらは説明するのも思い出すのも難しいのでご勘弁下さい
miki
大ベテラン
会議室デビュー日: 2001/09/21
投稿数: 174
お住まい・勤務地: 東京都八王子市
投稿日時: 2002-02-26 09:50
リファクタリングでは、テンポラリ変数の乱用によってメソッドが長くなることを防ぐという背景があって即時returnを使っていたように思います。if elseの各ブロックをそれぞれ小さなメソッドにして、if elseの全体を簡潔なメソッドにしてしまうというのも一つのやり方では。各メソッドは短いので複数returnがあっても、(プログラムを人間が読む上で)少しも問題にならないと思います。

引用:

H2さんの書き込み (2002-02-25 10:50) より:
(略)
やっぱりこういう所は個人の嗜好が入ってしまいますね。


H2さん、枝別れさせてごめんなさい。この話題はまたの機会に。
ただ、フォーマットに関しては、グループ開発において各自の趣味指向が入らないようにするのがスタイルの役目だと思います。
[code]

スキルアップ/キャリアアップ(JOB@IT)