设计模式考点

合集下载

设计模式的知识点有哪些

设计模式的知识点有哪些

设计模式的知识点有哪些设计模式是软件开发中常用的一种指导性原则和经验总结,旨在提高代码的可重用性、可维护性和可扩展性。

设计模式的核心在于解决软件设计中的重复性问题,使得代码更加灵活、可读性更强,并降低了软件开发过程中的风险。

本文将介绍常见的几种设计模式。

一、创建型模式1. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。

2. 工厂模式(Factory Pattern):定义一个用于创建对象的接口,由子类决定实例化哪个类。

3. 抽象工厂模式(Abstract Factory Pattern):提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

4. 建造者模式(Builder Pattern):将一个复杂对象的构建与其表示分离,使同样的构建过程可以创建不同的表示。

5. 原型模式(Prototype Pattern):通过复制已有对象来生成新对象。

二、结构型模式1. 适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另一个接口。

2. 桥接模式(Bridge Pattern):将抽象与实现解耦,使它们可以独立变化。

3. 装饰器模式(Decorator Pattern):动态地给一个对象添加额外的职责。

4. 组合模式(Composite Pattern):将对象组合成树形结构以表示"部分-整体"的层次结构。

5. 外观模式(Facade Pattern):提供一个统一的接口,用来访问子系统中的一群接口。

6. 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象。

三、行为型模式1. 观察者模式(Observer Pattern):定义对象之间的一对多依赖关系,使得当一个对象改变状态时,所有依赖它的对象都会被通知并自动更新。

2. 策略模式(Strategy Pattern):定义一系列算法类,将每个算法封装起来,并使它们可以互换。

设计模式复习重点(仅供参考)

设计模式复习重点(仅供参考)

复习重点1.莫勇腾《深入浅出设计模式》书后习题所有选择题,问答题16,18,20,21,222.什么是设计模式?简述设计模式的作用设计模式是一种问题的解决思路,它已经适用于一个时间环境,并且可以使用语其他环境。

通常是对于某一类软件设计问题的可重用的解决方案,将其引入软件设计和开发过程,可充分利用己有的软件开发经验设计优秀的软件。

作用a重用设计,重用设计比重用代码更有意义,它会自动带来代码重用;b为设计提供共同的词汇,没个模式就是一个设计词汇,其概念使得程序员间的交流更加方便;c在开发文档中采用模式词汇可以让其他人更容易理解你的想法,变邪恶开发文档就更容易;d应用设计模式可以让重构系统变容易,降低在设计或实现中出现错误的可能性;e可以节省大量时间。

3.设计模根据目的准则分类(课本27章)1,创建型:创建型比较容易理解。

与对象的创建有关。

如Factory,Builder2,结构型:处理类或对象的组合。

如Adapter,Facade,Proxy等3,行为型:对类或对象怎么交互和怎么分配职责进行描述。

如Strategy,Command4.适配器模式的主要功能和分类在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。

一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。

对象适配器模式 - 在这种适配器模式中,适配器容纳一个它我包裹的类的实例。

在这种情况下,适配器调用被包裹对象的物理实体。

类适配器模式 - 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。

5.单例模式实例(要写代码,要明白各种同步方法的区别,最好参考课件)Class Singleton{private static Singleton instance;//注意采用Privateprivate Singleton(){ }public static Singleton getInstance(){if (instance == null) //1Instance = new Singleton(); //2return instance; //3}}public synchronized static Singleton getInstance(){if (instance == null) //1Instance = new Singleton();//2return instance; //3}public static Singleton getInstance(){synchronized (Singleton.class){if (instance == null)Instance = new Singleton();}return instance;}public static Singleton getInstance(){if (instance == null){synchronized (Singleton.class){if (instance == null)instance = new Singleton();}}return instance;}6.浅克隆和深克隆的概念及原型模式含义(含序列化必须的Serializable接口)浅克隆的对象变量都含有和原来对象相同的值(这里变量指基本类型的变量,String类也算),但那些引用其他对象的变量任然指向原来的对象。

设计模式简答题

设计模式简答题

1.什么是设计模式?设计模式的目标是什么?答:设计模式通常是对于某一类的软件设计问题的可重用的解决方案,将设计模式引入软件设计和开发过程,其目的就在于要充分利用已有的软件开发经验。

2.设计模式具有哪三大特点?答:(1) 在特定的场景下有可重用性,对相同类型不同问题的环境,其解决方案都有效。

(2) 可传授性,即问题出现的机会很多,解决问题的方案相同,人们相对可以接受。

(3) 有表示模式的名称。

3.GOF 设计模式常用的有几种?GOF 设计模式按照模式的目的可分为哪三类?答:行为型,结构型,创建型4.画出抽象工厂方法类图(这类题自己看书去。

)5.针对接口编程,不针对实现编程的意义。

答:主题与观察者都是用接口:观察者利用主题的接口向主题注册,而主题利用观察者接口通知观察者。

这样可以让两者之间运作正常,又同时具有松耦合的优点。

6.面向对象(OO)的原则有:答:1.封装变化2.多用组合,少用继承3.针对接口编程,不针对实现编程4.为交互对象之间的松耦合设计而努力5.对扩展开放,对修改关闭6.依赖抽象,不要依赖具体类7.只和朋友交谈8.别找我,我会找你9.类应该只有一个改变的理由7. 耦合分为几种?(1)内容耦合(2)公共耦合(3)外部耦合(4)控制耦合(5)标记耦合(6)数据耦合(7)非直接耦合8.GOF模式分为几种,每种包含哪些模式?答:分为3种。

创建型设计模式:简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式;结构型设计模式:适配器模式,桥接模式,组合模式,装饰模式,外观模式,轻量级模式,代理模式;行为性设计模式:责任链模式,命令模式,解释器模式,迭代器模式,中介者模式,备忘录模式,观察者模式,状态模式,策略者模式,模板方法模式,访问者模式。

1.不要和陌生人说话”是(D)原则的通俗表述A.接口隔离B.里氏代换C.依赖倒转D.迪米特2.当一个抽象模型有两个方面,其中一个方面依赖于另一方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用,可以考虑使用(A)A.观察者模式B.命令模式C.适配器模式D.单例模式3.对于某些类来说,只有一个实例是非常重要的,例如,系统中可以有都种类型的打印机,但是只能有一个打印机假脱机,只应该一个文件系统和一个窗口管理器,为此,可以使用(C)。

设计模式知识点整理

设计模式知识点整理

设计模式综述:什么是设计模式?Christopher Alexander说:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心,这样,你就能一次又一次地使用该方案而不必做重复劳动”。

设计模式就是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。

设计模式的基本要素?一般而言,一个模式有四个基本要素:模式名称——一个助记名,它用一两个词来描述模式的问题、解决方案和效果。

问题——描述了应该在何时使用模式。

解决方案——描述了设计的组成部分。

效果——描述了模式应用的效果及使用模式应权衡的问题。

设计模式的分类?我们根据两条准则对模式进行分类:第一是目的准则,即模式是用来完成什么工作的:模式依据其目的可分为创建型(Creational)、结构型(Structural)或行为型(Behavioral)三种,创建型模式与对象的创建有关,结构型模式处理类或对象的组合,行为型模式对类或对象怎样交互和怎样分配职责进行描述。

第二是范围准则,即指定模式主要是用于类还是用于对象:创建型类模式:将对象的部分创建工作延迟到子类创建型对象模式:将对象的部分创建工作延迟到另一个对象中结构型类模式:使用继承机制来组合类结构型对象模式:描述了对象的组装方式行为型类模式:使用继承描述算法和控制流行为型对象模式:描述一组对象怎样写作完成单个对象所无法完成的任务第一个设计模式——单例模式(创建型模式)先来看看下面这幅图片:这是windows任务管理器,当我们打开一个任务管理器窗口后,如果试图再打开一个任务管理器窗口,会发现打不开,显示的还是原来的那个窗口,也就是说,任务管理器窗口只能打开一个,不可能打开多个,这就用到了单例模式。

那么,什么是单例模式呢?单例模式(Singleton Pattern):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。

设计模式——速记口诀

设计模式——速记口诀

设计模式——速记⼝诀最近在学习设计模式的时候,感觉23种设计模式的名字好难记啊,晦涩难懂啊。

不过IT界好⼼⼈⼤有⼈在啊,下⾯是转载的⽂章,⼀个⼩⼝诀就帮助我们记牢23种设计模式。

真棒!其实我们应该⾼兴更应该反省,⾼兴的是不需要⾃⼰造轮⼦,反省的是为什么我们也遇到了同样的问题(名字不好记),但是我们没有去解决呢?或者说没有想办法去解决呢?对待问题的态度值得深思啊!设计模式常常被提起,不记住它们的名字怎能⾏?因此,我编写了这个顺⼝溜,希望您看了之后也能记得快、记得牢。

5 + 7 = 11;5个创建型,7个结构型,11个⾏为型1、创建型速记⼝诀抽⼯单建原Singleton,单例模式:保证⼀个类只有⼀个实例,并提供⼀个访问它的全局访问点Abstract Factory,抽象⼯⼚:提供⼀个创建⼀系列相关或相互依赖对象的接⼝,⽽⽆须指定它们的具体类。

Factory Method,⼯⼚⽅法:定义⼀个⽤于创建对象的接⼝,让⼦类决定实例化哪⼀个类,FactoryMethod使⼀个类的实例化延迟到了⼦类。

Builder,建造模式:将⼀个复杂对象的构建与他的表⽰相分离,使得同样的构建过程可以创建不同的表⽰。

Prototype,原型模式:⽤原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。

2、结构型速记⼝诀桥代理组装适配器,享元回家装饰外观。

解释:有个姓桥的代理组装适配器,他⼉⼦享元拿回家装饰外观去啦Composite,组合模式:将对象组合成树形结构以表⽰部分整体的关系,Composite使得⽤户对单个对象和组合对象的使⽤具有⼀致性。

Facade,外观模式:为⼦系统中的⼀组接⼝提供⼀致的界⾯,facade提供了⼀⾼层接⼝,这个接⼝使得⼦系统更容易使⽤。

Proxy,代理模式:为其他对象提供⼀种代理以控制对这个对象的访问Adapter,适配器模式:将⼀类的接⼝转换成客户希望的另外⼀个接⼝,Adapter模式使得原本由于接⼝不兼容⽽不能⼀起⼯作那些类可以⼀起⼯作。

23种设计模式记忆口诀

23种设计模式记忆口诀

23种设计模式记忆口诀
1.单例模式:唯一实例化,静态访问,线程不安全
2. 工厂方法模式:子类实现,工厂创建,扩展性强
3. 抽象工厂模式:创建一族产品,接口约束,扩展性强
4. 建造者模式:组合复杂对象,分步骤构建,灵活性高
5. 原型模式:克隆对象,避免重复创建,效率高
6. 适配器模式:兼容接口不同,类似转换器,易扩展
7. 桥接模式:抽象与实现分离,解耦合,易扩展
8. 装饰器模式:动态增强对象功能,不影响原有对象,易扩展
9. 组合模式:层次结构,统一访问,易扩展
10. 外观模式:简化复杂系统调用,易使用,易扩展
11. 享元模式:共享资源,避免重复创建,效率高
12. 代理模式:增强对象功能,控制对象访问,易扩展
13. 责任链模式:多个对象处理请求,自动传递,易扩展
14. 命令模式:将请求封装成对象,易扩展,易记录日志
15. 解释器模式:解释语言,易扩展,易维护
16. 迭代器模式:遍历集合,统一访问,易扩展
17. 中介者模式:分离对象间交互,降低耦合,易扩展
18. 观察者模式:对象状态改变,通知观察者,易扩展
19. 备忘录模式:保存对象状态,易恢复,易扩展
20. 状态模式:对象状态改变,自动改变行为,易扩展
21. 策略模式:选择不同策略,易切换,易扩展
22. 模板方法模式:定义操作流程,易扩展,易维护
23. 访问者模式:统一访问集合中对象,易扩展,易维护。

设计模式考试复习题(含答案)

设计模式考试复习题(含答案)

一、1. 设计模式一般用来解决什么样的问题: A.同一问题的不同表相2. 下列属于面向对象基本原则的是: C.里氏代换3. Open-Close原则的含义是一个软件实体:A.应当对扩展开放,对修改关闭.4. 当我们想创建一个具体的对象而又不希望指定具体的类时,使用(A)模式。

A.创建型5. 要依赖于抽象不要依赖于具体。

即针对接口编程不要针对实现编程:(D)依赖倒转原则6. 依据设计模式思想,程序开发中应优先使用的是( A )关系实现复用。

A, 委派7. 设计模式的两大主题是( D ) D.系统复用与系统扩展8. 单体模式中,两个基本要点(AB)和单体类自己提供单例A .构造函数私有 B.唯一实例9. 下列模式中,属于行为模式的是( B ) B观察者10. “不要和陌生人说话”是( D )原则的通俗表述 D.迪米特1. 软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述活动,也不描述系统怎样开发,它只描述系统的组成元素及其相互的交互协作。

2.一个UML模型只描述了一个系统要做什么,它并没告诉我们系统是怎么做。

3.接口是可以在整个模型中反复使用的一组行为,是一个没有属性而只有方法的类。

4.多重性指的是,某个类有多个对象可以和另一个类的一对象关联。

5.当一个类的对象可以充当多种角色时,自身关联就可能发生。

6.在泛化关系中,子类可以替代父类。

后前者出现的可以相同地方。

反过来却不成立。

7.最通常的依赖关系是一个类操作的形构中用到了另一个类的定义。

8.组成是强类型的聚集,因为聚集中的每个部分体只能属于一个整体。

9.实现的符号和继承的符号有相似之处,两者的唯一差别是实现关系用虚线表示,继承关系用实线表示。

10. 设计模式中应优先使用对象组合而不是类继承。

1.适配器模式属于创建型模式结构型( F )2.在设计模式中,“效果”只是指“原因和结果”( T )3.设计模式使代码编制不能真正工程化( T )4.面向对象语言编程中的异常处理,可以理解为责任链模式(T )5.反模式就是反对在软件开发过程中使用设计模式分析:反模式用来解决问题的带有共性的不良方法(F )1.什么是设计模式?设计模式目标是什么?答:设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

设计模式期末复习

设计模式期末复习

设计模式期末复习题1、以下哪个模式是利用一个对象,快速地生成一批对象:()A.抽象工厂(Abstract Factory)模式B.组合(Composite)模式C.原型(Prototype)模式D.桥接(Bridge)模式2、要针对接口编程,不要针对实现编程是()原则的一种表述。

A.里氏代换B. 依赖倒转C.接口隔离D.迪米特3、“不要和陌生人说话” 是( )原则的通俗表述A.开闭B.里氏代换C.合成复用D.迪米特4、关于继承表述错误的是:()A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。

B.泛化类(超类)可以显式地捕获那些公共的属性和方法。

特殊类(子类)则通过附加属性和方法来进行实现的扩展。

C.破坏了封装性,因为这会将父类的实现细节暴露给子类。

D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类5、当想使用一个已经存在的类,但其接口不符合需求时,可以采用()设计模式将该类的接口转换成我们希望的接口A. 命令(Command)B. 适配器(Adapter)C.装饰(Decorator)D.桥接(Bridge)6、对于依赖倒转的表述错误的是()A.依赖于抽象而不依赖于具体,也就是针对接口编程。

B.依赖倒转的接口并非语法意义上的接口,而是一个类对其他对象进行调用时,所知道的方法集合。

C.从选项B的角度论述,一个对象可以有多个接口。

D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。

而且不必知道所示用的对象是那个实现类的实例。

E.此题没有正确答案。

7、Java的异常处理机制可理解为哪一种行为模式。

A.观察者(Observer)模式B.迭代器(Iterator)模式C.职责链(Chain of Responsibility)模式D.策略(Strategy)模式8、( )不是桥接模式所适用的场景A. 一个可以跨平台并支持多种格式的文件编辑器B. 一个支持多数据源的报表生成工具,可以以不同图形方式显示报表信息C. 一个可动态选择排序算法的数据操作工具D. 一个可以支持多种编程语言的跨平台开发工具9、下图描述了一种设计模式,该模式不可以()A. 动态决定由一组对象中某个对象处理该请求B. 动态指定处理一个请求的对象集合,并高效率地处理一个请求C. 使多个对象都有机会处理请求,避免请求的发送者和接收者间的耦合D. 将对象连成一条链,并沿着该链传递请求10、在()时无须使用命令模式A. 实现撤消操作和恢复操作B. 将请求的发送者和接收者解耦C. 不改变聚合类的前提下定义作用于聚合中元素的新操作D. 在不同的时刻指定请求,并将请求排队11. 中介者模式中通过中介者来将同事类解耦,这是()的具体应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设计模式题库--自编版选择题1、设计模式具有()的优点。

A、提高系统性能B、降低软件规模和复杂度C、减少代码开发工作量D、提升软件设计的质量2、在面向对象软件的开发中,采用设计模式()。

A、可以减少在设计和过程中需要创建的实例对象的数量B、可以保证程序的运行速度达到最优值C、可以复用相似问题的相同解决方案D、允许在非面向对象程序设计语言中使用面向对象的概念3、()都是行为型设计模式。

A、组合模式、适配者模式和代理模式B、观察者模式、职责链模式和策略模式C、原型模式、建造者模式和单例模式D、迭代器模式、命令模式和桥接模式4.开闭原则是面向对象的可复用设计的基石,开闭原则是指一个软件实体应当对()开放,对()关闭;里氏代换原则是指任何()可以出现的地方,()一定可以出现;依赖倒置原则就是依赖于(),而不要依赖于(),或者说要针对接口编程,不要针对实现编程。

①A、修改B、扩展C、分析D、设计②A、修改B、扩展C、分析D、设计③A、变量B、常量C、基类对象D、子类对象④A、变量B、常量C、基类对象D、子类对象⑤A、程序设计语言 B、建模语言C、实现D、抽象⑥A、程序设计语言 B、建模语言C、实现D、抽象5.关于单一责原则,以下叙述错误的是()。

A、一个雷只负责一个功能领域中的相应职责。

B、就一个类而言,应该有且仅有一个引起它变化的原因。

C、一个类承担的职责越多,越容易复用,被复用的可能性越大。

D、当一个类承担的职责过多时,需要将职责进行分离,将不同的职责封装在不同的类中。

6.以下关于面向对象设计的的叙述中,错误的是()。

A、高层模块不应该依赖于低层模块。

B、抽象不应该依赖于细节。

C、细节可以依赖于抽象。

D、高层模块无法不依赖于低层模块。

7.在系统设计中应用迪米特法则,以下叙述有误的是()。

A、在类的划上,一个尽量创建松耦合的类,类的耦合度越低,复用越容易。

B、如果两个类之间不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。

C、在对其他类的引用上,一个对象对其他对象的引用应该降到最低。

D、在类的设计上,只要有可能,一个类型应该尽量设计成抽象类或接口,且成员变量和成员函数的访问权限最好设置为公开的。

8.在简单工厂模式中,如果需要增加新的具体产品,通常需要修改()的源代码。

A、抽象产品类B、其他具体产品类C、工厂类D、客户类9.以下关于简单工厂模式叙述错误的是()。

A、简单工厂模式可以根据参数的不同返回不同的产品类的实例。

B、简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

C、简单工厂模式可以减少系统中的类的个数,简化系统的设计,使得系统更易于理解。

D、系统的扩展困难,在添加新的产品时需要修好工厂的业务逻辑,违背了开闭原则。

10.以下代码使用了()模式。

abstract class Product{public abstract void Process(); }class ConcreateProductB:Product {Public override void Process()...}Class Factory{ Public static Product CreateProduct(char type){Switch(type){Case ‘A’:Return new ConcreateProductA();break;Case ‘B’:Return new ConcreateProductB();break;}}}A、Simple FactoryB、Factory MethodB、C、Abstract Factory D、未使用任何设计模式11.不同品牌的手机应该由不同是公司所造,例如Motorola公司生产Motorola 手机,Nokia公司生产Nokia手机。

该场景蕴含了()模式。

A、Simple FactoryB、Factory MethodC、Abstract FactoryD、Builder12.以下关于工厂方法模式的叙述错误的是()。

A、在工厂方法模式中引入了抽象工厂类,二具体产品的场景延迟到具体工厂中实现B、使用工厂方法模式添加新的产品对象很容易,无须对原有系统进行修改,符合开闭原则C、工厂方法模式存在的问题是在添加新产品时,需要编写新的具体产品类,而且提供与之对应的具体工厂类,随着类个数的增加,会给系统带来一些额外开销。

D、工厂方法模式是所有形式的工厂模式中的最为抽象和最具一般性的一种形态,工厂方法模式退化后可以演变成抽象工厂模式。

13.某银行系统采用工厂模式描述其不同账户之间的关系,设计出的类图如图4-7所示。

其中,与工厂模式中的“Creator”角色相对应的类是();与“Product”角色相对应的类是()。

①A、Bank B、Account C、Checking D、Savings②A、Bank B、Account C、Checking D、Savings14、关于C#中的MemberwiseClone()方法,以下叙述有误的是()。

A、对于对象x,都有x.MemberwiseClone()==xB、对于对象x,都有x.MemberwiseClone().GetType()==x.GetType()C、对于对象x的成员对象Member,都有x.MemberwiseClone().Menber==x.MemberD、对于对象x的成员对象Member,都有x.MemberwiseClone().Member.GetType()==x.Member.GetType.15.以下关于原型模式叙述错误的是()。

A、原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象B、浅克隆仅仅复制所考虑的对象,而不复制它所引用的对象,也就是其中的成员对象并不复制C、在原型模式中实现深克隆时通常需要编写较为复杂的代码D、在原型模式中不需要为每一个类配备一个克隆方法,因此对于原型模式的扩展很灵活,对于已有类的改造也较为容易16.某公司要开发一个即时聊天软件,用户在聊天过程中可以与多位好友同时聊天,在私聊时将产生多个聊天窗口,为了提高聊天窗口的创建效率,要去根据第一个窗口快速创建其他窗口。

针对这种需求,采用()进行设计最为合适。

A、享元模式B、单例模式C、原型模式D、组合模式17.在()时可使用单例模式。

A、隔离菜单项对象的创建和使用B、防止一个资源管理器窗口被实例化多次C、使用一个已有的查找算法而不想修改既有代码D、不能创建子类,需要扩展一个数据过滤器18.以下关于单例模式的描述,正确的是()。

A、它描述了只有一个方法的类的集合B、它能够保证一个类只产生一个唯一的实例C、它描述了只有一个属性的类的集合D、它能够保证一个类的方法只能被一个唯一的类调用19.以下()不是单例模式的要点。

A、某个类只能有一个实例B、单例类不能被继承C、必须自行创建单个实例D、必须自行向整个系统提供单个实例20、()将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

A、命令(Command)模式B、适配器(Adapter)模式C、策略(Strategy)模式D、单例(Simple)模式21.以下关于适配器模式的叙述错误的是()。

A、适配器模式将一个接口装换成客户希望的另一个接口,使得原本由于接口不兼容那些类可以一起工作。

B、在类适配器中,Adapter和Adaptee是继承关系,而在对象适配器中,Adapter和Adaptee是关联关系。

C、类适配器比对象适配器更加灵活,在C#语言中可以通过类适配器一次视频多个适配者类。

D、适配器可以在不修改原来的适配者接口Adaptee的情况下将一个类的接口和另一个类的接口匹配起来。

22.现需要开发一个文件转换软件,将文件由一种格式转换为另一种格式,例如将XML文件转换为PDF文件,将DOC文件转换为TXT文件,有些文件格式转换代码已经存在,为了将已有的代码应用于新软件,而不需要修改软件的整体结构,可以使用()模式进行系统设计。

A、适配器(Adapter)B、组合(Composite)C、外观(Faced)D、桥接(Bridge)23.在对象适配器模式中,适配器类(Adapter)和适配者类(Adaptee)之间的关系为()。

A、关联关系B、依赖关系C、继承关系D、实现关系24.()模式将抽象部分与它的实现部分相分离,使它们都可以独立地变化。

图10-7所示为该模式的图,其中,()用于定义实现部分的接口。

①A、单例(Simple) B、桥接(Bridge) C、组合(Composite) D、外观(Faced)②A、Abstraction B、ConcreteImplementorAC、ConcreteImplementorBD、Implementor25.以下关于桥接模式的叙述错误的是()。

A、桥接模式的用意是将抽象化与实现化解耦,使得亮着可以独立地变化。

B、桥接模式将继承关系转换成关联关系,从而降低系统的耦合度。

C、桥接模式来源动态地给一个对象增加功能,这些功能也可以动态的撤销。

D、桥接模式可以从接口中分离实现功能,使得设计更具有扩展性。

26.()不是桥接模式所适用的环境。

A、一个可以跨平台并支持多种格式的文件编辑器B、一个支持多数据源的报表生成工具,可以以不同的图形方式显示报表信息C、一个可动态选择排序算法的数据操作工具D、一个支持多种编程语言的跨平台开发工具27.当不能采用生成子类的方法进行扩展时,可采用()模式动态地给一个对象添加一些额外的职责。

A、外观(Faced)B、单例(Simple)C、参与者(Participant)D、装饰(Decorator)1、以下()不是装饰模式的适用条件。

A、要扩展一个类的功能或给一个类增加附加责任B、要动态地给一个对象增加功能,这些功能还可以动态撤销C、要动态组合多于一个的抽象化角色和实现化角色D、要通过一些基本功能的组合产生复杂功能,而不使用继承关系28.Windows操作系统中的应用程序快捷方式是()模式的应用实例。

A、代理(Proxy)B、组合(Composite)C、装饰(Decorator)D、外观(Faced)1、以下关于代理模式的叙述错误的是()。

A、代理模式能够协调调用者和被调用者,从而在一定程度上降低系统的耦合度B、控制对一个对象的访问,给不同的用户提供不同级别的使用权限时可以考虑使用远程代理C、代理模式的缺点是请求的处理速度会变慢,并且实现代理模式需要额外的工作D、代理模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用29.代理模式有多种类型,其中,智能引用代理是指()。

相关文档
最新文档