タグ

javaと設計に関するBaramakiFPSのブックマーク (2)

  • コンストラクタ内でのthis参照リーク問題 - やさしいデスマーチ

    GUIの設計パターン」のコメントで指摘があったので補足しておきます。 Javaのコンストラクタは思った以上に複雑で、希に困った状況を引き起こします。その1つの例が「コンストラクタ内でthis参照リーク」問題です。次のようなコードがあった時、どうなるか予想できるでしょうか? class Bar { Foo foo = null; Bar() { } } public class Foo { Bar bar = null; final String finalObj; Foo(Bar bar) { bar.foo = this; if (true) throw new RuntimeException(); this.finalObj = "OK"; } public static void main(String[] args) { Bar bar = new Bar(); try { F

    コンストラクタ内でのthis参照リーク問題 - やさしいデスマーチ
  • Javaプログラマが知るべき9のこと - @katzchang.contexts

    はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ

    Javaプログラマが知るべき9のこと - @katzchang.contexts
  • 1