关于访问者模式(Visitor)的适用性以下哪些是正确的()A、一个对象的结构包含多个不同接口的对象,并且需要根据具体对象作不同的处理B、对结构中的对象有很多不同且没有联系的处理,因此需要避免操作将类分离C、类中定义的对象结构很少改变,但需要以常地定义处理结构的新操作D、需要对行为的算法作很多变动

题目

关于访问者模式(Visitor)的适用性以下哪些是正确的()

  • A、一个对象的结构包含多个不同接口的对象,并且需要根据具体对象作不同的处理
  • B、对结构中的对象有很多不同且没有联系的处理,因此需要避免操作将类分离
  • C、类中定义的对象结构很少改变,但需要以常地定义处理结构的新操作
  • D、需要对行为的算法作很多变动

相似考题
更多“关于访问者模式(Visitor)的适用性以下哪些是正确的()A、一个对象的结构包含多个不同接口的对象,并且需要根据具体对象作不同的处理B、对结构中的对象有很多不同且没有联系的处理,因此需要避免操作将类分离C、类中定义的对象结构很少改变,但需要以常地定义处理结构的新操作D、需要对行为的算法作很多变动”相关问题
  • 第1题:

    关于对象、类、继承、多态的描述,不正确的是: ( ) 。

    A.对象包含对象表示、对象状态和对象行为三个基本要素
    B.类是对象的实例,对象是类的模板
    C.继承是表示类之间的层次关系
    D.多态使得同一个操作在不同类中有不同的实现方式

    答案:B
    解析:
    面向对象的基本概念包括对象、类、抽象、封装、继承、多态、接口、消息、组件、复用和模式等。——对象:由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。对象包含三个基本要素,分别是对象标识、对象状态和对象行为。——类:现实世界中实体的形式化描述,类将该实体的属性(数据)和操作(函数)封装在一起。类和对象的关系可理解为,对象是类的实例,类是对象的模板。——抽象:通过特定的实例抽取共同特征以后形成概念的过程。对象是现实世界中某个实体的抽象,类是一组对象的抽象。——封装:将相关的概念组成一个单元模块,并通过一个名称来引用它。——继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另外一类对象的特征,继承又可分为单继承和多继承。——多态:使得在多个类中可以定义同一操作或属性名,并在每个类中可以有不同的实现。——接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。——消息:体现对象间的交互,通过它向目标对象发送操作请求。——组件:表示软件系统可替换的、物理的组成部分,封装了模块功能的实现。——复用:指将已有的软件及其有效成分用于构造新的软件或系统。组件技术是软件复用实现的关键。——模式:描述了一个不断重复发生的问题,以及该问题的解决方案。

  • 第2题:

    欲开放一个绘图软件,要求使用不同的绘图程序绘制不同的图形,该绘图软件的扩展性要求将不断扩充新的图形和新的绘图程序,以绘制直线和图形为例,得到如下图所示的类图,该设计采用( )模式将抽象部分与其实现部分分离,使它们都可以独立的变化。其中( )定义了实现类接口,该模式适用于( )的情况,该模式属于(请作答此空)模式。

    A.创建型对象
    B.结构型对象
    C.行为型对象
    D.结构类型

    答案:B
    解析:
    桥接模式模式属于结构型对象模式,可以将抽象部分与其实现部分分离,使它们都可以独立的变化。桥接模式适用于不希望在抽象和它的实现部分之间有一个固定判定关系。Drawing类是抽象类,Shape类是实现类,在桥接图中由抽象类指向实现类。适配器模式将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。装饰模式动态地给一个对象添加一些额外的职责。就扩展功能而言,Decorator模式比生成子类方式更为灵活。组合模式将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得客户对单个对象和复合对象的使用具有一致性。

  • 第3题:

    设计模式中的( )模式将对象组合成树形结构以表示"部分一整体"的层次结构,使得客户对单个对象和组合对象的使用具有一致性。下图为该模式的类图,其中,( )定义有子部件的那些部件的行为;组合部件的对象由(请作答此空)通过component提供的接口操作。

    A.Client
    B.Component
    C.Leaf
    D.Composite

    答案:A
    解析:
    本题主要组合设计模式。组合设计模式将对象组合成树形结构以表示"部分一整体"的层次结构,使得客户对单个对象和组合对象的使用具有一致性。
    在类图中,Component为合成的对象声明接口;某些情况下,实现从此接口派生出所有类共有的默认行为,定义一个接口可以访问及管理它的多个部分(GetChild),如果必要也可以在递归结构中定义一个接口访问它的父节点,并且实现它;Leaf在合成中表示叶节点对象,叶节点没有子节点;Composite用来定义有子节点(子部件)的部件的行为,存储子节点(子部件);Client通过Component接口控制组合部分的对象。

  • 第4题:

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

    • A、当一个抽象模型存在两个方面,其中一个方面依赖于另一方面,将这二者封装在独立的对象中以使它们可以各自独立地改变和复用
    • B、当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变时
    • C、当一个对象必须通知其它对象,而它又不能假定其它对象是谁也就是说你不希望这些对象是紧密耦合的
    • D、一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作

    正确答案:C

  • 第5题:

    关于scala中的类和它的伴生对象,以下说法不正确的是()

    • A、类和它的伴生对象定义在同一个文件中
    • B、类和它的伴生对象可以有不同的名称
    • C、类和它的伴生对象的名称必须相同
    • D、类和它的伴生对象可以互相访问私有特性

    正确答案:B

  • 第6题:

    面向对象的分析过程一般包括:获取用户对系统的需求、标识类和对象以及()。

    • A、定义类的结构和层次
    • B、定义对象的结构和层次
    • C、定义方法的结构和层次
    • D、定义消息的结构和层次

    正确答案:A

  • 第7题:

    以下意图哪个是用来描述ABSTRACT FACTORY(抽象工厂)?()

    • A、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
    • B、定义一个用于创建对象的接口,让子类决定实例化哪一个类
    • C、将一个类的接口转换成客户希望的另外一个接口
    • D、表示一个作用于某对象结构中的各元素的操作

    正确答案:A

  • 第8题:

    以下哪一个模式是表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作()

    • A、访问者模式
    • B、桥接模式
    • C、原型模式
    • D、单例模式

    正确答案:A

  • 第9题:

    单选题
    有关类、对象、事件,下列说法中不正确的是()。
    A

    对象仅能用本身包含的代码来实现操作

    B

    对象可以是任何客观事物,对象是类的特例

    C

    类是一组具有相同结构、操作并遵守相同规则的对象

    D

    事件是一种预先定义好的特定动作,由用户或系统激活


    正确答案: A
    解析: 暂无解析

  • 第10题:

    单选题
    关于模式适用性,在以下情况不适合使用COMPOSITE(组合)模式?()
    A

    你想使用一个已经存在的类,而它的接口不符合你的需求

    B

    你想表示对象的部分-整体层次结构

    C

    当一个类的实例只能有几个不同状态组合中的一种时

    D

    一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为


    正确答案: A
    解析: 暂无解析

  • 第11题:

    多选题
    关于访问者模式(Visitor)的适用性以下哪些是正确的()
    A

    一个对象的结构包含多个不同接口的对象,并且需要根据具体对象作不同的处理

    B

    对结构中的对象有很多不同且没有联系的处理,因此需要避免操作将类分离

    C

    类中定义的对象结构很少改变,但需要以常地定义处理结构的新操作

    D

    需要对行为的算法作很多变动


    正确答案: C,B
    解析: 暂无解析

  • 第12题:

    单选题
    关于模式适用性,在以下情况不适合使用STRATEGY(策略)模式?()
    A

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

    B

    许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法

    C

    需要使用一个算法的不同变体。例如,你可能会定义一些反映不同的空间/时间权衡的算法。当这些变体实现为一个算法的类层次时可以使用策略模式

    D

    算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构


    正确答案: B
    解析: 暂无解析

  • 第13题:

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


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

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

  • 第14题:

    以下设计模式中,( )模式使多个对象都有机会处理请求。将这些对象连成一条链。并沿着这条链传递该请求。直到有一个对象处理为止。从而避免请求的发送者和接收者之间的耦合关系。( )模式提供一种方法顺序访问一个聚合对象中的各个元素。且不需要暴露该对象的内部表示。这两种模式均为(请作答此空)

    A.创建型对象模式
    B.结构型对象模式
    C.行为型对象模式
    D.行为型类模式

    答案:C
    解析:
    责任链模式:通过给多个对象处理请求的机会,减少请求的发送者与接受者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理这个请求。迭代器模式:提供一种方法来顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示命令模式:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作解释器模式:给定一种语言,定义它的文法表示,并定义一个解释器,该解释器用来根据文法表示来解释语言中的句子责任链模式和迭代器模式都是行为型对象模式

  • 第15题:

    对于如下所示的序列图所描述的场景,最适合于采用的设计模式是(请作答此空);该模式适用的场合是( )。

    A.对象的行为决定于它的状态,且必须在运行时刻根据状态改变它的行为
    B.定义对象结构的类很少改变,但经常需要在此结构上定义新的操作
    C.需要使用一个算法的不同变体
    D.一个对象必须通知其它对象,而它又不能假定其它对象是谁

    答案:B
    解析:
    访问者(visitor)模式是一种对象的行为模式,用于表示一个作用于某对象结构中的各元素的操作,它使得用户可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式使得新的操作变得很容易,但在一定程度上破坏了封装性。

  • 第16题:

    以下意图哪个是用来描述ADAPTER(适配器)?()

    • A、将一个类的接口转换成客户希望的另外一个接口。本模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作
    • B、定义一个用于创建对象的接口,让子类决定实例化哪一个类
    • C、表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作
    • D、将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作

    正确答案:A

  • 第17题:

    以下意图哪个是用来描述PROTOTYPE(原型)?()

    • A、允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类
    • B、表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作
    • C、定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
    • D、用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

    正确答案:D

  • 第18题:

    装饰模式的优点有哪些()

    • A、可以通过一种动态的方式来扩展一个对象的功能,通过配置文件可以在运行时选择不同的装饰器,从而实现不同的行为
    • B、可以使用多个具体装饰类来装饰同一对象,得到功能更为强大的对象
    • C、具体构件类与具体装饰类可以独立变化,用户可以根据需要增加新的具体构件类和具体装饰类,在使用时再对其进行组合,原有代码无须改变,符合“开闭原则”
    • D、使用装饰模式进行系统设计时将产生很多小对象
    • E、装饰模式比继承更加易于出错,排错也很困难,对于多次装饰的对象,调试时寻找错误可能需要逐级排查,较为烦琐

    正确答案:A,B,C

  • 第19题:

    建造者模式的优点有哪些()

    • A、分步骤构建一个复杂的对象
    • B、应对“复杂对象各个部分”的频繁需求变动
    • C、用户使用不同的具体建造者即可得到不同的产品对象
    • D、如果产品的内部变化复杂,可能会导致需要定义很多具体建造者类来实现这种变化,导致系统变得很庞大
    • E、如果产品之间的差异性很大,则不适合使用建造者模式,因此其使用范围受到一定的限制

    正确答案:A,B,C

  • 第20题:

    以下意图哪个是用来描述FACTORY METHOD(工厂方法)?()

    • A、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
    • B、表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作
    • C、定义一个用于创建对象的接口,让子类决定实例化哪一个类。该模式使一个类的实例化延迟到其子类
    • D、定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化

    正确答案:C

  • 第21题:

    单选题
    面向对象的分析过程一般包括:获取用户对系统的需求、标识类和对象以及()。
    A

    定义类的结构和层次

    B

    定义对象的结构和层次

    C

    定义方法的结构和层次

    D

    定义消息的结构和层次


    正确答案: B
    解析: 暂无解析

  • 第22题:

    单选题
    以下意图哪个是用来描述VISITOR(访问者)?()
    A

    定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新

    B

    表示一个作用于某对象结构中的各元素的操作

    C

    在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态

    D

    用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象


    正确答案: A
    解析: 暂无解析

  • 第23题:

    单选题
    以下哪一个模式是表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作()
    A

    访问者模式

    B

    桥接模式

    C

    原型模式

    D

    单例模式


    正确答案: A
    解析: 暂无解析

  • 第24题:

    单选题
    以下意图哪个是用来描述PROTOTYPE(原型)?()
    A

    允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类

    B

    表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作

    C

    定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新

    D

    用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象


    正确答案: D
    解析: 暂无解析