结构推理 可以从几个方面来进行这种判断确定哪些对象是主动对象?
【正确答案】(1)考虑问题域。这要求考虑问题域这个服务所描述的对象行为是不是主动行为,它是由该对象主动呈现的还是由外来的因素引发的行为。
   (2)考虑与系统边界以外的活动者直接进行交互的对象。这些对象极有可能成为主动对象,这是因为,活动者往往并发地与系统进行交互,因此要求系统中与处理这种交互直接相关的对象提供主动服务。
   (3)考虑系统功能的构成层次中,完成最外层功能的对象服务是否应定义为主动服务。因为根据系统责任观察,按照过程抽象的原则,一般在系统功能的构成层次中由执行外层功能的系统成分把内层功能提交给其他成分去完成,外层与内层是请求与被请求的关系,所以完成最外层功能的服务中最可能的是主动服务。
   (4)最后一个策略是进行服务执行路线的逆向追踪。考虑每个服务是被其他哪些对象的哪些服务请求的,按消息传递的相反方向跟踪上去,直到发现某个服务不被其他成分所请求,则它应该是一个主动对象的主动服务。
【答案解析】