[実世界をそのまま表現するモデルとは]
3.従業員−会社モデルの検討
それでは各々について検討してみましょう。
まず1)のモデルです。
ここでは「従業員」と「会社」がそのままクラスとなっており、両者の間に「働く」という関連が定義されています。もっとも素直で、かつシンプルなモデルといってよいでしょう。
次に2)のモデルです。
ここでは「従業員」のスーパークラスとして「人」が導出されています。
確かに「従業員は人である」( is-a関係)と言えますし、「人」は「従業員」でなければ「従業員番号」を持ちません。このモデルではそれらのことがきちんと表現されているようです。
またこのモデルを採用すれば、後から「アルバイト」や「パート」、あるいは「自営業者」「学生」といったクラスを追加したくなった場合でも「人」のサブクラスとすることで比較的簡単に対応できそうです。
最後に3)のモデルです。
ここでは、「従業員」クラスは定義されておらず、その代わりに「人」がクラスとして導出されています。
つまり「従業員」という概念は、たんに「人」がある会社と「雇用」という契約を結んでいる場合に限った、その会社に対する役割(ロール)ととらえられています。「人」は何をしようと、あくまで「人」としてのアイデンティティを保ち続ける、という考え方です。現代のドライになった人と企業の関係によく適合する考え方かもしれません。
いかがでしょう?
どれがもっとも良いモデルでしょうか?
リレーショナルデータベースの設計経験が長い方なら素直に1)を選ぶかもしれません。
オブジェクト指向技術の勉強をされている方ならば、2)や3)を選ぶかもしれません。
特に3)は継承を使わない面白いモデルで、これを選んだ方はもしかすると物事を抽象化して考える良いセンスを持っているかもしれません。
© 1998 OGIS-RI Co., Ltd. |
|