タグ

ブックマーク / d.hatena.ne.jp/makiyamakoji (2)

  • Javaテクニック:コンストラクタの引数が多いときにはビルダーを検討する(その2) - バイオインフォマティクスって何ですか?

    Java | 書籍『Effective Java』から Java のプログラミングテクニックを紹介します。前回、コンストラクタの引数が多い場合の解決策として、テレスコーピングコンストラクタパターンと JavaBeans パターンの2つの方法を見ました。これらの方法には、それぞれ「可読性」と「安全性」において問題がありました。今回は、これらの欠点を同時に解決できる第3の方法、ビルダーパターンについて説明します。ビルダーパターンビルダーパターンでは、欲しいオブジェクトを直接生成する代わりに、まず、ビルダーオブジェクトを生成します。このビルダーオブジェクトに対して、パラメータを設定するセッターのようなものを呼び出し、個別にパラメータを設定します。設定が終わったら、最後に build() メソッドを呼び出し、欲しいオブジェクトを生成します。実際にどのようになるかを次に示します。 // ビルダーパタ

    fumysan
    fumysan 2009/04/27
  • Javaテクニック:コンストラクタの代わりに static ファクトリーメソッドを検討する(その2) - バイオインフォマティクスって何ですか?

    Java | 書籍『Effective Java』から Java のプログラミングテクニックを紹介します。Javaテクニック:コンストラクタの代わりに static ファクトリーメソッドを検討する(その1)の続き。メリット3:メソッドの戻り値を任意のサブタイプにすることができるstatic ファクトリーメソッドの3つ目のメリットは、コンストラクタと異なり、メソッドの戻り値を任意のサブタイプにすることができるということです。これにより、どのクラスのオブジェクトを返すかという選択肢が増えることで柔軟性が増します。この柔軟性を使った1つの応用として、返すオブジェクトのクラスを public にすることなく、APIのみを返すというテクニックがあります。例えば、Java のコレクションフレームワークには、List を渡すと変更不可能なオブジェクトにして返してくれる Collections.unmod

    fumysan
    fumysan 2009/04/27
  • 1