単位が異なれば同じ物でも異なるクラスになる#
「一個売りしているリンゴ」をシステムで扱う場合、どのような属性が必要になるかを考えてみます。- 品種
- 重さ
- 売り値
- 入荷日
- 品種 (同じ山には同じ品種を乗せる前提)
- 重さ (一山あたりの総重量)
- 売り値 (一山あたりの総額)
- 個数
「一山売りしているリンゴ」では、「一個あたりの売り値(平均の売り値)を返す」というメソッドがすぐに思い浮かびます。
これらから解るように、「リンゴ」というクラスが設計段階、特に概念モデルで出てきても、それが一個なのか一山なのかを確定させないと正しいクラスとして設計できません。裏を返すと、同じリンゴであっても、それを扱う単位が異なれば異なるクラスとして設計する必要があるということです。
実際のシステムでは一件クラスと一覧クラス#
単位が異なると言っても、実際のシステムではどう考えればいいのでしょう? 答えは簡単で、「『一件』と『一覧』は異なるクラスとして設計・実装する」です。『件』と『覧』というふうに単位が異なるからです。例えば業務要件を聞いている中で「顧客会社クラス」が出てきた場合は、
- 「顧客会社一件クラス」
- 「顧客会社一覧クラス」
![]() |
要件の中に出てくる単位を見逃さない#
前項までで解るように、単位は非常に重要です。ここで言う単位というのは物理学で言うものではなく、業務を遂行する人たちがあるものをひとかたまりとして扱う大きさのことです。- 一伝票
- 一明細
- 一会社
- 一箱
- 一取引
RDBならば一レコードと一テーブルが別クラス#
永続装置としてRDBを使うことが実際の開発では日常的です。この時には、RDBテーブル一つに対して- 一レコードクラス
- 一テーブルクラス (複数レコードを扱う時のクラス)
単位が異なるとクラスが異なるという原則がこれで解ると思います。
添付ファイルの追加
ログイン済のユーザのみが添付ファイルをアップロード出来ます。
添付ファイル一覧
Kind | Attachment Name | Size | Version | Date Modified | Author | Change note |
---|---|---|---|---|---|---|
gif |
apple_1ko.gif | 2.2 kB | 1 | 11-7-2011 03:13 | ytp | |
gif |
apple_1yama.gif | 3.1 kB | 1 | 11-7-2011 03:13 | ytp | |
png |
nyuuka1.png | 0.9 kB | 1 | 11-7-2011 04:41 | ytp | |
png |
nyuuka2.png | 2.8 kB | 3 | 31-12-2011 20:32 | ytp | |
png |
nyuuka3.png | 4.6 kB | 4 | 19-2-2012 22:30 | ytp | |
png |
nyuuka4.png | 4.1 kB | 4 | 19-2-2012 22:31 | ytp | |
png |
nyuuka5.png | 8.8 kB | 4 | 19-2-2012 22:31 | ytp | |
png |
nyuuka6.png | 2.7 kB | 2 | 31-12-2011 20:33 | ytp | |
png |
nyuuka7.png | 4.0 kB | 3 | 31-12-2011 20:33 | ytp | |
png |
nyuuka8.png | 5.5 kB | 1 | 19-2-2012 22:31 | ytp | |
png |
single_multiple.png | 1.5 kB | 3 | 31-12-2011 20:31 | ytp |
«
This particular version was published on 11-7-2011 03:17 by ytp.