<< 朽ちていくD51 | main | 関心事は、エンタープライズアプリケーション >>

関連の設計と実装



オーダーと明細のモデル。

明細は、最低一行ないといけない、というのがビジネスルール。(構造ルール)




Java で実装すると、 Order クラスが、 List コレクションへの参照を持つ。
明細が最低一行必須、というビジネスルールは、メソッドで実装する。




同じモデルをテーブルで実装する。
参照が逆転しちゃいますね。

Java だと、Order クラスが List を知っている。 List は、 Order クラスを知らない。

Order テーブルは、Item テーブルへの情報を持たないけど、Item テーブルは、Order Number を参照している。(外部キー参照)

参照の逆転

マーチンファウラーのPoEAA にでてくる外部キーマッピングですね。
もっとも、PoEAA では、このパターン(コレクションへの単方向の参照)は、依存マッピングを推奨している。

このテーブルモデルは、Item の主キーである object_oid の扱い方の問題。

依存マッピングでは、
・object_oid での検索はしない。( Item を単独で検索はしない )
・テーブルの主キーの object_oid は、 Java のオブジェクトでは持たない ( 一意フィールドを持たない)
という実装をする。

同じモデルを、Java で実装するのと、テーブルで実装するのでは、参照関係が逆転。この逆転構造を、マッピングする課題を検討しているのが、PoEAA 12章 O-R 構造パターン、というわけだ。

コメント
コメントする









この記事のトラックバックURL
トラックバック
calendar
   1234
567891011
12131415161718
19202122232425
2627282930  
<< November 2017 >>
システム設計日記を検索
プロフィール
リンク
システム開発日記(実装編)
有限会社 システム設計
twitter @masuda220
selected entries
recent comment
  • 番号より名前。 ニーモニックコードより名前。 【パターン】
    師子乃 (03/10)
  • Smart UI が優れている?
    masuda220 (03/10)
  • Smart UI が優れている?
    kagehiens (03/09)
  • オブジェクト指向プログラミングの教え方?
    masuda220 (12/05)
  • オブジェクト指向プログラミングの教え方?
    ZACKY (12/04)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    kompiro (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    JHashimoto (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (02/28)
recent trackback
categories
archives
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM