itgle.com

若需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作“污染”这些对象的类,那么应选择哪种设计模式?(30)。A.职责链模式B.中介者模式C.访问者模式D.适配器模式

题目

若需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作“污染”这些对象的类,那么应选择哪种设计模式?(30)。

A.职责链模式

B.中介者模式

C.访问者模式

D.适配器模式


相似考题
参考答案和解析
正确答案:C
解析:访问者(Visitor)模式的意图在于表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。它适用于下述情况:①一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依赖于其具体类的操作。②需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作“污染”这些对象的类。Visitor使得你可以将相关的操作集中起来定义在一个类中。当该对象结构被很多应用共享时,用Visitor模式让每个应用仅包含需要用到的操作。③定义对象结构的类很少改变,但经常需要在此结构上定义新的操作。改变对象结构的类需要重定义对所有访问者的接口,这可能需要很大的代价。如果对象结构的类经常改变,那么可能还是在这些类中定义这些操作比较好。
更多“若需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作“污染”这些 ”相关问题
  • 第1题:

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

    A.必须保存一个对象在某一个时刻的(部分)状态
    B.想在不明确指定接收者的情况下向多个对象中的一个提交一个请求
    C.需要对一个对象结构中的对象进行很多不同的并且不相关的操作
    D.在不同的时刻指定、排列和执行请求

    答案:C
    解析:
    访问者模式包含如下角色:Vistor :抽象访问者ConcreteVisitor:具体访问者Element: 抽象元素ConcreteElement:具体元素ObjectStructure:对象结构

  • 第2题:

    Photoshop中如果要对多个图层中的对象(背景层除外),同时使用自由变换命令,可以做一下哪种操作?

    A.将这些图层放到一个组中

    B.将这些图层锁定

    C.将这些图层中的对象用一个选择区域框选中

    D.将这些图层合并到背景层中


    将这些图层放到一个图层组中;;将这些图层链接起来;

  • 第3题:

    3、在面向对象设计中,对象有很多基本特点,其中“一个系统中通常包含很多类,这些类之间呈树形结构”这一性质指的是对象的:

    A.分类性

    B.标识唯一性

    C.继承性

    D.封装性


    方法中指定了算法,而操作只说明了要做的事

  • 第4题:

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


    A.必须保存一个对象在某一个时刻的(部分)状态
    B.想在不明确指定接收者的情况下向多个对象中的一个提交一个请求
    C.需要对一个对象结构中的对象进行很多不同的并且不相关的操作
    D.在不同的时刻指定、排列和执行请求

    答案:C
    解析:
    访问者模式包含如下角色:Vistor :抽象访问者ConcreteVisitor:具体访问者Element: 抽象元素ConcreteElement:具体元素ObjectStructure:对象结构

  • 第5题:

    观察者(Observer)模式适用于()。

    A.当一个抽象模型有两个方面,其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立的改变和复用

    B.当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变

    C.当一个对象必须通知其他对象,而他又不能假定其它对象是谁。换言之,用户不希望这些对象是紧密耦合的

    D.一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作


    当一个对象必须通知其它对象,而它又不能假定其它对象是谁也就是说你不希望这些对象是紧密耦合的