問2 オブジェクト指向設計に関する次の記述を読んで,設問1〜3に答えよ。
図1の貸出カードを使って,本とCDの貸出しと返却の管理を行っている図書館がある。この図書館における貸出管理のシステムをオブジェクト指向で開発することになった。
まず,扱っている本とCDに着目し,図2に示す“本”クラスと“CD”クラスを定義した。図2は,各クラスがタイトルなどの属性と,それらを参照する操作をもっていることを示す。
図3にクラスの定義方法と,クラス間の関係の定義方法を示す。 |
|
||||||||||||||||||||||||||
図1 貸出カード |
|
|
||||||
図2 “本”クラスと“CD”クラスの定義 |
|
![]() |
|||
図3 クラスの定義方法と関係の定義方法 |
設問1 “本”クラスと“CD”クラス共通のスーパクラスとして“貸出物”クラスを設けることにした。クラス間の構造を表現した図4を完成させよ。スーパクラスで定義した方がよいと考えられるものはすべてスーパクラスで定義し,サブクラスでは定義しないものとする。属性名及び操作名は,図2にあるものを使用すること。 |
![]() |
図4 クラス構造(1) |
設問2 貸出履歴を管理するために,図1の貸出カードの項目である貸出日,返却日及び利用者をもつ“貸出履歴”クラスを設けることにした。“貸出物”クラスに対する貸出しや返却の処理はすべて,“貸出物”クラスから“貸出履歴”クラスに委譲されるものとする。図5の“貸出物”クラスと“貸出履歴”クラスの属性名及び操作名欄に適切な属性名と操作名を記入し,これらのクラスの定義を完成させよ。 属性名及び操作名は要求されているものだけを書くこと。また,“本”クラスと“CD”クラスには何も書かないこと。 |
![]() |
注 網掛け部分には何も書かないこと |
図5 クラス構造(2) |
設問3 |
|
||||||||||
|
|||||||||||
変更があっても,呼出し側のプログラムを変更する必要がなく,保守性の向上が期待できる。 | |||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||
|