タグ

javaに関するpolidogのブックマーク (23)

  • Inversion of Control コンテナと Dependency Injection パターン

    以下の文章は、Martin Fowler の「Inversion of Control Containers and the Dependency Injection pattern」を、かくたにが翻訳したものです。原著者の許可を得て翻訳・公開しています。 翻訳にあたっては、kdmsnr さんにご協力をいただきました。ありがとうございます。公開後の改訂履歴を記事の最後に記述しています。 Java コミュニティでは軽量コンテナが花盛りである。 軽量コンテナは、異なるプロジェクトのコンポーネントをひとまとまりのアプリケーションとして組み立てることを支援する。 このようなコンテナの根底には、コンポーネントの結び付け方についての共通したパターンがある。 そのパターンのコンセプトは「Inversion of Control(制御の反転)」と、まことに包括的な名前で呼ばれている。 記事では、このパタ

  • throwsを用いるかどうかはメソッドの役割で決まる

    例外が発生する可能性があるメソッドでは、そのメソッドにおいて例外を捕捉するか、そのメソッドを呼び出したメソッドに例外を投げる(任せる)かを選ぶ必要があります(例外がRuntimeExceptionのサブクラスである場合を除く)。前者を選ぶ場合は「try-catch」構文を用い、後者を選ぶ場合は「throws」を用います。 このどちらを選択するかは、機械的には決められません。メソッドの役割を考えて選択する必要があります。また、複数の例外がある場合、「try-catch」すべき例外と「throws」すべき例外に分けることを考えましょう。 まず、コンパイルエラーを逃れるためだけの「throws」は避けるべきです。下は最も悪い例といえるでしょう。 6行目の「throws Exception」を外すと分かりますが、このメソッドは、URLクラスのコンストラクタが不正なURLを受け取ったときに投げる M

    throwsを用いるかどうかはメソッドの役割で決まる
  • Javaの道:例外(4.アサーション)

    概要 アサーションとは、バグの少ないプログラム開発を補助する機能です。プログラムコード中に、ある特定の条件をアサーションで記載しておきます。その条件を満たさない場合は、AssertionErrorが返されます。そうすることにより、バグの箇所を早期に発見できるようになります。 ----- プログラム処理A ----- //この位置で変数iが0の場合、AssertionErrorが返されます。 assert i != 0 ; ----- プログラム処理B ----- //この位置で変数iが0以上でない場合、AssertionErrorが返されます。 assert i > 0 ; ----- プログラム処理C ----- アサーションとは、バグの少ないプログラム開発を補助する機能です。プログラムコード中に、ある特定の条件をアサーションで記載しておきます。その条件を満たさない場合は、Asserti

    Javaの道:例外(4.アサーション)
    polidog
    polidog 2009/05/01