ObjectSquare [1999 年 6 月号]

[オブジェクト指向は本当に「オブジェクト」指向か?]


2.2 身分を人から分離させたモデル

さて次のモデルです。

Image.2
図2:身分を人から分離したモデル

このモデルは、少しだけトリッキーです。
まず基本的な考え方として、「人」と「身分」を別の存在ととらえました。言ってみれば、本来の人と、その人の身分は別だという考え方でしょうか。
そして「身分」のサブクラスとして「会社員身分」「学生身分」を用意し、「人」と「身分」との多重度を1対多とすることで、「人」が複数の異なる「身分」を持てることを表現しました。また「身分」をサブクラス化したことで、「会社員身分」から「会社」、および「学生身分」から「学校」に対する多重度は、オプショナル(0または1)ではなく1になりました。

このモデルにはいくつかのメリットがあります。
まず拡張性の高さです。「人」に対する「身分」のインタフェースが同じである限りは、「人」にまったく影響を及ぼさずに、新たな「身分」を将来いくつでも追加できそうです。
また身分の仕様が明確なこともメリットと言えるでしょう。「会社員身分」から「会社」、「学生身分」から「学校」への関連の多重度が正確に1になったように、個々の身分をサブクラスとしたことで、特定の身分の性質を明確に表現できるようになりました。

一方、このモデルの問題点は何といっても「人」と「身分」を分けることの不自然さでしょう。まるで、学校へ通ったり、会社に勤めている自分は、本来の自分とは違う分身である、とでも言いたいようです。確かに、誰にでも多かれ少なかれ多重人格的な部分があるのかもしれませんが、「人」から切り離された「身分」だけが学校へ通ったり、会社に勤めたりするというモデルはいかにも不自然ではないでしょうか?


© 1999 OGIS-RI Co., Ltd.

Prev.

Index

Next