タグ

デザインパターンに関するrudo108のブックマーク (3)

  • サルでもわかる 逆引きデザインパターン 第3章 逆引きカタログ J2EE編 DAO(Data Access Object)

    イントロダクション 私たちが作るアプリケーションのほとんどは、どこかで永続的なデータを扱うことになります。 そのデータの保存先は、リレーショナルデータベースやテキストファイル、他システムなどになるでしょう。 そして保存されたデータへのアクセスで使用するAPIは、保存先によって変わっていきます。 例えば、リレーショナルデータベースだとJDBCを使用します。 ファイルだとjava.ioパッケージあたりを使用したりします。 また、リレーショナルデータベースのみに焦点を当ててみても、ベンダやバージョンによって発行するSQL文を変えなければなりません。 ファイルに永続的なデータを保存していて、その保存先がデータベースに変更されたときのことを想像してください。 ビジネスロジック(業務ロジック)の中にデータアクセスにまつわるコードを書いている場合、保存先の変更が容易ではありません(同様のことが、データベ

  • nullという値は本当に必要か考えよう - かとじゅんの技術日誌

    今回は、nullの扱いは気をつけようねというお話。特にこれからの人に読んでもらいたい。 nullは変数を初期化する時などに、当たり前のように登場します。Javaではnullがないなんて考えられないわけです。(C#でも同様) しかし、nullの考案者のTony Hoareは「10億ドル単位の過ち」と発言しています。 null参照の考案は10億ドル単位の過ち?(スラッシュドット・ジャパン) - エキサイトニュース nullには、それだけの魔性があって使い方を考える必要があります。nullは”値が存在しない”という状態を表現する時に使われることが多いのですが、そのnullに対する注意が十分に払えずにトラブってしまうことが多いのです。Scalaではその"値が存在しない"という状態をOption型のNoneで表現することでnullを回避する手段が提供されています。JavaではScalaのようにはでき

    nullという値は本当に必要か考えよう - かとじゅんの技術日誌
    rudo108
    rudo108 2011/11/14
    遭遇してみて始めて実感がわくという事実。[todo]
  • サルでもわかる 逆引きデザインパターン 第4章 逆引きカタログ その他 Nullオブジェクト

    具体的な例 それではより具体的な例を見てみましょう。サンプルは商品の割引価格を計算するコードです。 割引価格には「会員の割引価格」「セール時の割引価格」「通常の割引価格」の3種類があります。 割引価格の種類を決定するのは、Mainクラス実行時のアプリケーション引数です。 Mainクラスは「java Main 価格 割引ロジック名(sale, member, 指定しないのいずれか)」の形式で実行します。 例えば「java Main 1000 member」で実行すると会員割引価格となり、「java Main 1000 sale」で実行するとセール時の割引価格となります。 「java Main 1000」と指定がない場合は、通常の割引価格になります。 各クラスの役割は次のようになります(図8~9)。 ◎DiscountLogic(リスト14) 割引計算のロジックのインタフェースです。各割引計算

    rudo108
    rudo108 2011/09/08
    new に対してnull対処しているといつの間にかロジックよりもnullチェックが多くなっていることがある。
  • 1