下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,Abstraction和RefinedAbstraciton之间是( )关系,Abstraction和Implementor之间是( )关系。A.将一个类的接口转换为客户期望的另一种接口,使得原本不匹配的接口而无法合作的类可以一起工作 B.将一个抽象与其实现分离开,以便两者能够各自独立地演变 C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能 D.为一个对象提供代理以控制该对象的访问

题目
下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,Abstraction和RefinedAbstraciton之间是( )关系,Abstraction和Implementor之间是( )关系。


A.将一个类的接口转换为客户期望的另一种接口,使得原本不匹配的接口而无法合作的类可以一起工作
B.将一个抽象与其实现分离开,以便两者能够各自独立地演变
C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
D.为一个对象提供代理以控制该对象的访问

相似考题
更多“下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,Abstraction和RefinedAbstraciton之间是( )关系,Abstraction和Implementor之间是( )关系。 ”相关问题
  • 第1题:

    在面向对象分析和设计中,用类图给出系统的静态设计视图,其应用场合不包括(请作答此空)。下图是一个UML类图,其中类University和类School之间是( )关系,类Person和类PersonRecord之间是( )关系,表示Person与Person Record( )。

    A.对系统的词汇建模
    B.对简单的协作建模
    C.对逻辑数据库模式建模
    D.对系统的需求建模

    答案:D
    解析:
    本题考查面向对象技术的基础知识。 考生应该了解UML的典型模型,包括用例图、类图、序列图、活动图等。本题考查类图,类图主要是对系统的词汇建模,或者对简单的协作建模,或者对逻辑数据库模式建模,而用例图对系统的需求建模。 类图中,类和类之间的关系有依赖关系、关联关系、聚集关系、组合关系和泛化关系,其中聚集关系和组合关系是表示更强的关联关系,表示整体和部分的关系,而组合关系的类之间具有相同的生命周期。图中类University和类School之间是聚集关系,类Person和类PersonRecord之间是依赖关系,表示Person与PersonRecord之间的语义关系,其中PersonRecord发生变化会影响Person的语义。

  • 第2题:

    在面向对象分析和设计中,用类图给出系统的静态设计视图,其应用场合不包括( )。下图是一个UML类图,其中类University和类School之间是( )关系,类Person和类PersonRecord之间是( )关系,表示Person与Person Record(请作答此空)。


    A. 之间的语义关系,其中PersonRecord发生变化会影响Person的语义
    B .之间的一种结构关系,描述了一组链,即对象之间的连接
    C. 是整体和部分的关系
    D .是一般和特殊的关系

    答案:A
    解析:
    本题考查面向对象技术的基础知识。 考生应该了解UML的典型模型,包括用例图、类图、序列图、活动图等。本题考查类图,类图主要是对系统的词汇建模,或者对简单的协作建模,或者对逻辑数据库模式建模,而用例图对系统的需求建模。 类图中,类和类之间的关系有依赖关系、关联关系、聚集关系、组合关系和泛化关系,其中聚集关系和组合关系是表示更强的关联关系,表示整体和部分的关系,而组合关系的类之间具有相同的生命周期。图中类University和类School之间是聚集关系,类Person和类PersonRecord之间是依赖关系,表示Person与PersonRecord之间的语义关系,其中PersonRecord发生变化会影响Person的语义。

  • 第3题:

    部门、员工和项目的关系模式及它们之间的E-R图如下所示,其中,关系模式中带实下划线的属性表示主键属性。部门(部门代码,部门名称,电话)员工(员工代码,姓名,部门代码,联系



    若部门和员工关系进行自然连接运算,其结果集为(请作答此空)元关系。由于员工和项目关系之间的联系类型为( ),所以员工和项目之间的联系需要转换成一个独立的关系模式,该关系模式的主键是( )。

    A.5
    B.6
    C.7
    D.8

    答案:C
    解析:
    本题考查关系数据库E-R模型的相关知识。试题的正确答案是C。根据题意,部门和员工关系进行自然连接运算,应该去掉一个重复属性“部门代码”,所以自然连接运算的结果集为7元关系。

  • 第4题:

    下图所示的扩展E-R图中,属性“电话”属于(请作答此空),在逻辑结构设计中,该图中的( )属性将不会被转换到关系模式中。

    A.组合属性
    B.派生属性
    C.多值属性
    D.单值属性

    答案:C
    解析:

  • 第5题:

    下图是( )设计模式的类图,该设计模式的目的是( ),图中,ConcreteStrategy和Strategy之间是( )关系,Strategy和Context之间是(请作答此空)关系。

    A.依赖
    B.关联
    C.继承
    D.聚合

    答案:D
    解析:
    适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,带普通箭头的实心线指向被拥有者。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

  • 第6题:

    下图是(请作答此空)设计模式的类图,该设计模式的目的是( ),图中,ConcreteCommand和Command之间是( )关系,Invoker和Command之间是( )关系。

    A.适配器
    B.命令
    C.装饰
    D.代理

    答案:B
    解析:
    适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。命令模式:将一个请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化,队请求排队或记录请求日志,以及支持可撤销的操作。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。代理模式:为一个对象提供代理以控制该对象的访问。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,带普通箭头的实心线指向被拥有者。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

  • 第7题:

    下图为某设计模式的类图,类State和Context的关系为(请作答此空),类( )是客户使用的主要接口。

    A.继承
    B.实现
    C.聚合
    D.组合

    答案:C
    解析:
    本题考查面向对象技术和UML的基本概念和基础知识。
    上述图是UML状态模式的类图。类图描述了系统中各类对象以及它们之间的各种关系。在该类图中,类State和Context的关系为聚合关系,客户访问类Context。

  • 第8题:

    下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,ConcreteCommand和Command之间是( )关系,Invoker和Command之间是( )关系。

    A.将一个请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化,队请求排队或记录请求日志,以及支持可撤销的操作
    B.将一个类的接口适配成用户所期待的
    C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
    D.为一个对象提供代理以控制该对象的访问

    答案:A
    解析:
    适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。命令模式:将一个请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化,队请求排队或记录请求日志,以及支持可撤销的操作。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。代理模式:为一个对象提供代理以控制该对象的访问。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,带普通箭头的实心线指向被拥有者。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

  • 第9题:

    下图为某设计模式的类图,类State和Context的关系为( ),类(请作答此空)是客户使用的主要接口。

    A.Context
    B.ConcreteStateA
    C.ConcreteStateB
    D.State

    答案:A
    解析:
    本题考查面向对象技术和UML的基本概念和基础知识。
    上述图是UML状态模式的类图。类图描述了系统中各类对象以及它们之间的各种关系。在该类图中,类State和Context的关系为聚合关系,客户访问类Context。

  • 第10题:

    下面的UML类图描绘的是(请作答此空)设计模式。关于该设计模式的叙述中,错误的是( )。

    A.桥接
    B.策略
    C.抽象工厂
    D.观察者

    答案:D
    解析:
    本题主要考查设计模式的相关知识。
    桥接模式将抽象部分与实现部分分离,使得它们两部分可以独立地变化。
    策略模式定义一系列的算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。
    抽象工厂提供了一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
    观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象改变状态,则其相关依赖对象皆得到通知并被自动更新。
    从本题给出的图我们可以判断是观察者模式,其中被观察对象(Subject),具体被观察对象(ConcreteSubject),观察者(Observer)及具体观察者(ConcreteObserver)。在本设计模式中,Observer需要维护至少一个Subject对象,一个Subject对象需要维护多个Observer对象,另外Subject需要通知Observer对象其自身的状态变化。

  • 第11题:

    下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,ConcreteStrategy和Strategy之间是( )关系,Strategy和Context之间是( )关系。

    A.将一个类的接口转换为客户期望的另一种接口,使得原本不匹配的接口而无法合作的类可以一起工作
    B.定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。
    C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
    D.为一个对象提供代理以控制该对象的访问

    答案:B
    解析:
    适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,带普通箭头的实心线指向被拥有者。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

  • 第12题:

    某软件公司欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。在明确用户需求后,该公司的架构师决定采用Bridge模式实现该软件,并设计UML类图如下图所示。图中与Bridge模式中的“Abstraction”角色相对应的类是(6),与“Implementor”角色相对应的类是(7)。【回答括号7】


    A. Shape
    B. Drawing
    C. Rectangle
    D. V2Drawing

    答案:B
    解析:
    桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。桥接模式类似于多重继承方案,但是多重继承方案往往违背了类的单一职责原则,其复用性比较差,桥接模式是比多重继承方案更好的解决方法。

    ·Abstraction定义抽象类的接口;维护一个指向Implementor类型对象的指针。

    ·RefinedAbstraction扩充由Abstraction定义的接口。

    ·Implementor定义实现类的接口,该接口不一定要与Abstraction的接口完全一致;事实上这两个接口可以完全不同。一般来说,Implementor接口仅提供基本操作,而Abstraction则定义了基于这些基本操作的较高层次的操作。

    ·ConcreteImplementor实现Implementor接口并定义它的具体实现。

    图中与Bridge模式中的“Abstraction”角色相对应的类是Shape,与“Implementor”角色相对应的类是Drawing。

  • 第13题:

    如图所示的UML类图中,Shop和Magazine之间为( )关系,Magazine和Page之间为( )关系。UML类图通常不用于对(请作答此空)进行建模。

    A.系统的词汇
    B.简单的协作
    C.逻辑数据库模式
    D.对象快照

    答案:D
    解析:

  • 第14题:

    在面向对象分析和设计中,用类图给出系统的静态设计视图,其应用场合不包括( )。下图是一个UML类图,其中类University和类School之间是( )关系,类Person和类PersonRecord之间是(请作答此空)关系,表示Person与Person Record( )。

    A.依赖
    B.关联
    C.聚集
    D.泛化

    答案:A
    解析:
    本题考查面向对象技术的基础知识。 考生应该了解UML的典型模型,包括用例图、类图、序列图、活动图等。本题考查类图,类图主要是对系统的词汇建模,或者对简单的协作建模,或者对逻辑数据库模式建模,而用例图对系统的需求建模。 类图中,类和类之间的关系有依赖关系、关联关系、聚集关系、组合关系和泛化关系,其中聚集关系和组合关系是表示更强的关联关系,表示整体和部分的关系,而组合关系的类之间具有相同的生命周期。图中类University和类School之间是聚集关系,类Person和类PersonRecord之间是依赖关系,表示Person与PersonRecord之间的语义关系,其中PersonRecord发生变化会影响Person的语义。

  • 第15题:

    下图所示的扩展E-R图中,属性“电话”属于( ),在逻辑结构设计中,该图中的(请作答此空)属性将不会被转换到关系模式中。


    A.性别
    B.电话
    C.年龄
    D.工号

    答案:C
    解析:

  • 第16题:

    下图所示的E-R图中,应作为派生属性的是(请作答此空):该E-R图应转换的关系模式为( ),其中各关系模式均满足4NF。

    A.出生日期
    B.年龄
    C.电话
    D.工号

    答案:B
    解析:
    本题考查扩展E-R图的基础知识。扩展E-R图中,实体的属性增加了组合属性、多值属性和派生属性的描述。其中,派生属性是指可以由其他属性来获得的属性。图中的年龄属性,可以由出生日期计算获得,故为派生属性。派生属性在扩展E-R图中使用虚线椭圆来表示,双线椭圆表示多值属性,即一个实体可以在该属性上有多个值,如一个员工可以有多个电话。根据扩展E-R图的转换规则,派生属性在转换过程中丢弃,多值属性与实体的标识符独立转换成一个关系模式,该关系模式属于4NF。其他属性构成的关系模式属于BCNF,无多值依赖,也属于4NF。

  • 第17题:

    下图是(请作答此空)设计模式的类图,该设计模式的目的是( ),图中,Subject和Proxy之间是( )关系,Proxy和RealSubject之间是( )关系。

    A.适配器
    B.桥接
    C.装饰
    D.代理

    答案:D
    解析:
    适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。代理模式:为一个对象提供代理以控制该对象的访问。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,带普通箭头的实心线指向被拥有者。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

  • 第18题:

    下图是( )设计模式的类图,该设计模式的目的是( ),图中,Abstraction和RefinedAbstraciton之间是( )关系,Abstraction和Implementor之间是(请作答此空)关系。

    A.依赖
    B.关联
    C.继承
    D.聚合

    答案:D
    解析:
    适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。代理模式:为一个对象提供代理以控制该对象的访问。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,用实线连接有关联的对象所对应的类。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

  • 第19题:

    下图中,类Product和ConcreteProduct的关系是(请作答此空),类ConcreteCreator和ConcreteProduct的关系是( )。

    A.继承
    B.关联
    C.组合
    D.依赖

    答案:A
    解析:
    类之间的关系主要有以下几种:(1)继承关系是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类,Product和ConcreteProduct以及Creator和ConcreteCreator之间的关系是继承关系,故第一空正确答案为A。(2)关联关系是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,用实线连接有关联的对象所对应的类。(3)组合关系是指一个类由若干个其他的类作为其构成部分。在UML中,组合关系用带实心菱形的直线表示。(4)依赖关系也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。ConcreteCreator和ConcreteProduct 之间是依赖关系,类ConcreteCreator依赖类ConcreteProduct 。故第二空答案为D。

  • 第20题:

    下图是( )设计模式的类图,该设计模式的目的是( ),图中,Decorator和Component之间是(请作答此空)关系,ConcreteDecorator和Decorator之间是( )关系。

    A.依赖和关联
    B.依赖和继承
    C.关联和实现
    D.继承和实现

    答案:C
    解析:
    图中Component定义一个对象接口,可以给这些对象动态地添加职责ConcreteComponent定义一个对象,可以给这个对象添加一些职责Decorator维持一个指向Compnonent对象的指针 ,并定义一个与Component接口-致的接口ConcreateDecorator向组件添加职责装饰( Decorator )模式适应于:在不影响其它对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时Decorator和Component之间应为关联与实现关系ConcreteDecorator和Decorator之间是继承(泛化)关系

  • 第21题:

    下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,Subject和Proxy之间是( )关系,Proxy和RealSubject之间是( )关系。

    A.将一个类的接口转换为客户期望的另一种接口,使得原本不匹配的接口而无法合作的类可以一起工作
    B.将一个抽象与其实现分离开,以便两者能够各自独立地演变
    C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
    D.为一个对象提供代理以控制该对象的访问

    答案:D
    解析:
    适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。代理模式:为一个对象提供代理以控制该对象的访问。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,带普通箭头的实心线指向被拥有者。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

  • 第22题:

    下图是(请作答此空)设计模式的类图,该设计模式的目的是( ),图中,Abstraction和RefinedAbstraciton之间是( )关系,Abstraction和Implementor之间是( )关系。

    A.适配器
    B.桥接
    C.装饰
    D.代理

    答案:B
    解析:
    适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。代理模式:为一个对象提供代理以控制该对象的访问。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,用实线连接有关联的对象所对应的类。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

  • 第23题:

    下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,Decorator和Component之间是( )关系,ConcreteDecorator和Decorator之间是( )关系。

    A.将一个类的接口转换为客户期望的另一种接口,使得原本因接口不匹配而无法合作的类可以一起工作
    B.将一个抽象与其实现分离开,以便两者能够各自独立地演变
    C.为一个对象提供代理以控制该对象的访问
    D.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能

    答案:D
    解析:
    图中Component定义一个对象接口,可以给这些对象动态地添加职责ConcreteComponent定义一个对象,可以给这个对象添加一些职责Decorator维持一个指向Compnonent对象的指针,并定义一个与Component接口-致的接口ConcreateDecorator向组件添加职责装饰(Decorator)模式适应于:在不影响其它对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时Decorator和Component之间应为关联与实现关系ConcreteDecorator和Decorator之间是继承(泛化)关系