[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] RE: [jfriends] Re: 引数(追記)




中川です。
>一緒に返したいということは、そのペアなりグループが、
>1つのクラスを構成すべきものである可能性が非常に高いので、
>クラス化してそのインスタンスを返すのが「一般的には」妥当だと思います。
>
>java.awt.Point や、
>java.awt.Dimension は、まさにその実例ですね。
>
>悩ましいのは返すインスタンスを、誰も所有していない(どのインスタンス
>のメンバとしても参照されてない・どのメソッドの変数も参照していない)
>ものにするか(つまり、確実にnewして返すのか)、
>はたまた、効率を考えてキャッシュしたりメンバとして参照しているものを、
>返すのかという点です。
>AWTで、Dimension を返すメソッド群は、このポリシーが不統一で、悩んだ
>記憶があります。
>
>
 個人的使い方ですが、何度も同じメソッドを呼び出す場合は、その返値に使うイン
スタンスは使い回しをしています。やはり、newするときにコストがかかるようなの
で、、、、
 以前、メソッド呼び出しごとにインスタンスを生成する場合と、メソッドを呼び出
す方でインスタンスを生成しておいて引数で渡す場合とで、メソッドのみを1000
000回ほど繰り返して時間を測ってみたことがありますが、目に見えて処理時間が
変わりました。(具体的な結果は忘れましたが毎回newするとそうでないものに対し
て約30倍程度の時間がかかります。) もちろんStringを使う場合は使い方によっ
てはこのような結果には成りませんが、、、、

 あまり回数を繰り返して使わないメソッドの場合は、気にすることもないと思いま
すが、繰り返し計算を多用する場合は要注意です。
-
中川 聡
  nakagawa@xxxxxxxxxx
    nakagawa@xxxxxxxxxx