问答题
.阅读下列说明,回答【问题1】~【问题3】。
【说明】 社交网络平台(SNS)的主要功能之一是建立在线群组,群组中的成员之间可以互相分享或挖掘兴趣和活动。每个群组包含标题、管理员以及成员列表等信息。
社交网络平台的用户可以自行选择加入某个群组,每个群组拥有一个主页,群组内的所有成员都可以查看主页上的内容。如果在群组的主页上发布或更新了信息,群组中的成员会自动接收到发布或更新后的信息。
用户可以加入一个群组也可以退出这个群组。用户退出群组后,不会再接收到该群组发布或更新的任何信息。
现采用面向对象方法对上述需求进行分析与设计,得到如表所示的类列表和如图所示的类图。
| 类列表 |
| 类名 | 描述 |
| SNSSubject | 群组主页的内容 |
| SNSGroup | 社交网络平台中的群组(在主页上发布信息) |
| SNSObserver | 群组主页内容的关注者 |
| SNSUser | 社交网络平台用户/群组成员 |
| SNSAdmin | 群组的管理员 |
问答题
1. 【问题1】
根据说明中的描述,给出图中C1~C3所对应的类名。
【正确答案】C1:SNSGroup;C2:SNSUser;C3:SNSAdmin。
(其中C2、C3可以互换)
【答案解析】
问答题
2. 【问题2】
图中采用了哪一种设计模式?说明该模式的意图及其适用场合。
【正确答案】采用的设计模式:观察者模式
意图:当被观察者(群组主页)发生改变时,可以通知所有的观察者(群组主页内容的关注者)随之改变,以达到联动的效果。
使用场合:观察者模式是行为型模式,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。
【答案解析】
问答题
3. 【问题3】
现在对上述社交网络平台提出了新的需求一个群体可以作为另外一个群体中的成员,例如群体A加入群体B。那么,群体A中的所有成员就自动成为群体B中的成员。
若要实现这个新需求,需要对图进行哪些修改?(以文字方式描述)
【正确答案】新增一个被观察者对象群组B的主页,对于观察者,新增一个方法,加入群组B,加入之后,可以接收被观察者群组B的主页变动所发送的通知。
【答案解析】