问答题

某商校拟开发一套图书馆管理系统,在系统分析阶段,系统分析师整理的核心业务流程与需求如下:

系统为每个读者建立一个账户,并给读者发放读者证(包含读者证号、读者姓名),账户中存储读者的个人信息、借阅信息以及预订信息等,挂有读者证可以借阅图书、返还图书、查询图书信息、预订图书、取消预订等。

在借阅图书时,需要输入读者所借阅的图书名、ISBN号,然后输入读者的读者证号,完成后提交系统,以进行读者验证,如果读者有效,借阅请求被接受,系统查询读者所借阅的图书是否存在,若存在,则读者可借出图书,系统记录借阅记录;如果读者所借的图书已被借出,读者还可预订该图书。读者如期还书后,系统清除借阅记录,否则需缴纳罚金,读者还可以选择续借图书。同时,以上部分操作还需要系统管理员和图书管理员参与。

【问题】根据类之间的相关性特点,可以将类之间的关系分为组合(composition),继承(inheritance),关联(association),聚合(aggregation)和依赖(dependency)等5种,请用300字以内的文字分别对这5种关系的内涵进行叙述,并从封装性、动态组合和创建对象的方便性三个方面对组合和维承关系的优缺点进行比较。
【正确答案】

依赖是一个类使用到了另一个类,这种使用关系具有偶然性、临时性且非常弱,但被使用类会影响使用类。关联是一种语义级别的强依赖关系,相较与依赖的偶然性、临时性,关联是长期的、平等的。

聚合和组合都是一个类由其他类构成的情况,是一种整体和部分的关系。聚合关系要弱一些,聚合对象间并非同生命周期,部分实例可以添加到聚合整体,也可以从聚合整体中移出。

组合是关联关系的一种特例,体现一种包含的关系,也称为强聚合,体现为整合和局部的关系,整体和局部不可分,共同使用统一的生命周期。

继承是指一个类或接口继承另外的一个类或接口的功能,并增加自身的新功能的能力。image.png

【答案解析】