问答题 试题三 阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 某物品拍卖网站为参与者提供物品拍卖平台,组织拍卖过程,提供在线或线下交易服务。网站主要功能描述如下: (1)拍卖参与者分为个人参与者和团体参与者两种。不同的团体也可以组成新的团体参与拍卖活动。网站记录每个参与者的名称。 (2)一次拍卖中,参与者或者是买方,或者是卖方。 (3)一次拍卖只拍出来自一个卖方的一件拍卖品;多个买方可以出价:卖方接受其中一个出价作为成交价,拍卖过程结束。 (4)在拍卖结算阶段,买卖双方可以选择两种成交方式:线下成交,买卖双方在事 先约定好的成交地点,当面完成物价款的支付和拍卖品的交付;在线成交,买方通过网上支付平台支付物价款,拍卖品由卖方通过快递邮寄给买方。 一次拍卖过程的基本事件流描述如下: (1)卖方在网站上发起一次拍卖,并设置本次拍卖的起拍价。 (2)确定拍卖标的以及拍卖标的保留价(若在拍卖时间结束时,所有出价均低于拍卖标的保留价,则本次拍卖失败)。 (3)在网站上发布本次拍卖品的介绍。 (4)买方参与拍卖,给出竟拍价。 (5)卖方选择接受一个竟拍价作为成交价,结束拍卖。 (6)系统记录拍卖成交价,进入拍卖结算阶段。 (7)卖方和买方协商拍卖品成交方式,并完成成交。 现采用面向对象方法对系统进行分析与设计,得到如表3-1所示的类列表以及如图3-1所示的类图,类中关键属性与方法如表3-2所示。
问答题 问题:3.1 (7分) 根据说明中的描述,给出图3-1中(1)~(7)所对应的类名(类名使用表3-1中给出的序号)。
【正确答案】
【答案解析】本题属于经典的考题,主要考查面向对象分析方法与设计的基本概念。在建模方面, 本题中只涉及到了UML类图。类图上的考点也是比较常规的对类的识别以及类中属性及方法的确定,题目难度不大。 图3-1共需要确定7个类,可以先从图中几个特殊关系处入手,即(1)?(3)和(4)?(6)。 先来分析(1)?(3),这是一个继承+聚集的结构,而且联系的名称“participants” 是一个比较明显的提示,说明这个层次结构是与【说明】中的功能描述(1)相对应的。 参考表3-1,与之相关的类是C5 (AuctionParticipant)、C7 (OneParticipant)和C9 (CompositeParticipant)。C7、C9是特殊的参与者,所以(1)处应该为C5; (2)处应该 为C9,这个聚集关系针对着【说明】中的“不同的团体也可以组成新的团体参与拍卖活动”需求;(3)处为C7。 结合【说明】和表3-1,另外一组具有“一般-特殊”关系的类只有C6 (Interchange), C8 (OfflinePay)和C10 (OnlinePay)。显而易见,C8和C10是C6的两种具体方式, 所以(4)处应该为C6, (5)、(6)处分别为C8和C10。 这样(7)处对应的类只能是Item了。结合【说明】和表3-1可知,(7)处对应的类表达的应该是拍卖中的拍卖品,所以(7)处应该是C2。
问答题 问题:3.2 (5分) 根据说明中的描述,确定表3-2中的属性/方法分别属于哪个类(类名、方法/属性名使用表3-1、3-2中给出的序号)。
【正确答案】
【答案解析】
问答题 问题:3.3 (3分) 在图3-1采用了何种设计模式?以100字以内文字说明采用这种设计模式的原因。
【正确答案】在图3-1中使用了Composite模式。 以树形结构表示个人参与者和团体参与者之间的“部分-整体”关系,使得对单个对象和组合对象的使用具有一致性。
【答案解析】在【说明】部分有一个很明显的提示:“拍卖参与者分为个人参与者和团体参与者两种。不同的团体也可以组成新的团体参与拍卖活动”。这里很清晰地表达了一种“部分 -整体”的层次关系,这种关系非常适合于采用Composite (组合)设计模式来表达。 Composite设计模式将对象组合成树形结构以表示“部分-整体”的层次结构。 Composite使得用户对单个对象和组合对象的使用具有一致性。