列表

详情


在某系统中,不同组(GROUP)访问数据的权限不同,每个用户(User)可以是一个或多个组中的成员,每个组包含零个或多个用户。现要求在用户和组之间设计映射,将用户和组之间的关系由映射进行维护,得到如下所示的类图。该设计采用(  )模式,用一个对象来封装系列的对象交互;使用户对象和组对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。该模式属于(  )模式,该模式适用 (  )。


第 1 问

A. 状态(State)

B. 策略(Strategy)

C. 解释器(Interpreter)

D. 中介者(Mediator)

第 2 问

A. 创建型类

B. 创建型对象

C. 行为型对象

D. 行为型类

第 3 问

A. 需要使用一个算法的不同变体

B. 有一个语言需要解释执行,并且可将句子表示为一个抽象语法树

C. 一个对象的行为决定于其状态且必须在运行时刻根据状态改变行为

D. 一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解

参考答案: D C D

详细解析:

本题考查设计模式的问题。
针对于题干和图示来看,不同组(GROUP)访问数据的权限不同,每个用户(User)可以是一个或多个组中的成员,每个组包含零个或多个用户。现要求在用户和组之间设计映射,将用户和组之间的关系由映射进行维护,在组和用户之间用UserGroupMapper实现两者的交互,两者之间不直接交互,用一个对象来封装系列的对象交互;使用户对象和组对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互,是典型关于中介者模式的描述和应用。
中介者模式属于行为型对象模型,可以适用于一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。
其中以下场景中A选项是对策略模式的描述,B选项是对解释器的描述,C选项是对状态模式的描述。
综上所述,本题选择D,C,D



上一题