假设现在要创建一个简单超市销售系统,顾客将毛巾、饼干、酸奶等物品(Item)加入购物车(Shopping_Cart),在收银台(Checkout)人工(Manual)或自动(Auto)地将购物车中每个物品价格汇总到总价格后结帐。这一业务需求类图(方法略)设计如下图所示,采用了( )模式。其中( )定义以一个Checkout对象为参数accept操作,由子类实现此accept操作。此模式为( ),适用于(请作答此空)。

- A.必须保存一个对象在某一个时刻(部分)状态
- B.想在不明确指定接收者情况下向多个对象中一个提交一个请求
- C.需要对一个对象结构中对象进行很多不同并且不相关操作
- D.在不同时刻指定、排列和执行请求
正确答案及解析
正确答案
C
解析
访问者模式包含如下角色:Vistor :抽象访问者ConcreteVisitor:具体访问者Element: 抽象元素ConcreteElement:具体元素ObjectStructure:对象结构




