阅读以下说明和图,根据要求回答问题1~问题4。
[说明]
某电子商务公司开办了在线电子商务网站,主要为各注册的商家提供在线商品销售功能。为更好地吸引用户,该公司计划为注册的商家提供商品(Commodity)促销(Promotion)功能。商品的分类(Category)不同,促销的方式和内容也会有所不同。
注册商家可发布促销信息。商家首先要在自己所销售商品的分类中,选择促销涉及的某一具体分类,然后选出该分类的一个或多个商品(一种商品仅属于一种分类),接着制定出一个比较优惠的折扣政策和促销活动的优惠时间,最后由系统生成促销信息并将该促销信息公布在网站上。
商家发布促销信息后,网站的注册用户便可通过网站购买促销商品。用户可选择参与某一个促销 (Promotion)活动,并选择具体的促销商品(Commodity),输入购买数量等购买信息。系统生成相应的一份促销订单(POrder)。只要用户在优惠活动的时间范围内,通过网站提供的在线支付系统,确认在线支付该促销订单(即完成支付),就可以优惠的价格完成商品的购买活动,否则该促销订单失效。
系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,如图6-18所示是该系统类图中的一部分;系统的动态行为采用UML序列图表示,如图6-19所示是发布促销的序列图。
[问题4] 现需了解十大最畅销(借出次数最多)图书或唱碟。为此引入类TemPopulate以存储所有十大畅销图书或CD的名称及其被借出的次数。利用顺序图描述某类图书或唱碟被借出后成为十大畅销图书或唱碟时对象间的消息交互,通常在系统一次运行过程中,应有 (11) 个TenPopulate实例对象最合适,一个 TenPopulate类实例对象最多需要和 (12) 个Items_on_loan实例对象交互。 [供选择的答案] (11) A.1 B.2 C.10 D.n(图书和唱碟种类数) (12)
A.2 | B.10 |
C.20 | D.n(图书和唱碟种类数) |
参考答案:
解析:[问题4] 类TemPopulate存储十大畅销图书或CD的名称及其被借出的次数,顺序图中要明确的给出这一对象。通常在系统一次运行过程中,有1个TenPopulate实例对象最合适。 为了记录图书或唱片的借出信息,每当有图书或唱片被借出时,都需要和类TemPopulate的对象发生交互。因此,有可能所有的图书和唱片都要和类TemPopulate对象发生交互,即一个类TenPopulate实例对象最多需要和图书及唱碟种类数个Items_on_loan实例对象交互。