设计模式复习题
- 格式:docx
- 大小:29.16 KB
- 文档页数:11
设计模式期末考试题及答案# 设计模式期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个不是设计模式的分类?A. 创建型模式B. 结构型模式C. 行为型模式D. 功能型模式答案:D2. 单例模式属于哪种类型的设计模式?A. 创建型模式B. 结构型模式C. 行为型模式D. 并发型模式答案:A3. 装饰者模式主要用于解决什么问题?A. 对类的功能进行扩展B. 将对象组合成树形结构C. 将一个类的对象包装成另一个新类的对象D. 将类接口的实现部分委托给其他对象答案:A4. 观察者模式中,当被观察对象状态发生变化时,它将通知所有的什么?A. 观察者B. 参与者C. 订阅者D. 监听者答案:A5. 策略模式的意图是?A. 定义一系列的算法,把它们一个个封装起来,并使它们可互换B. 确保一个对象的引用在多个线程间是安全的C. 允许用户对某个对象的内部状态进行访问,而不允许修改D. 允许多个客户端通过一个共同的接口与一个对象交互,而这个对象却能在运行时切换其行为答案:A...(此处省略其他选择题)二、简答题(每题10分,共30分)1. 解释什么是工厂方法模式,并给出一个实际应用的例子。
答案:工厂方法模式是一种创建型设计模式,它定义了一个创建对象的接口,但让子类决定实例化哪一个类。
工厂方法让类的实例化推迟到子类中进行。
例如,在图形界面编程中,一个工厂类可以负责创建不同类型的按钮,如按钮工厂方法可以返回一个“圆形按钮”或“方形按钮”的实例。
2. 描述适配器模式的工作原理,并解释它在软件开发中的应用。
答案:适配器模式是一种结构型模式,它允许不兼容的接口之间进行通信。
它通过一个适配器类将一个类的接口转换成客户端期望的另一个接口。
在软件开发中,适配器模式常用于实现第三方库或遗留系统的接口,使得它们能够与现有的系统兼容。
3. 解释观察者模式的工作原理,并举例说明其在实际开发中的应用。
答案:观察者模式是一种行为型模式,它定义了对象间的一种一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。
1.1(D)以用户的观点表示系统的目标,它是所有视图的核心,该视图描述系统的需求。
A 结构视图B 行为视图C 实现视图D 用户视图E 环境视图F 物理视图G逻辑视图1.2类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同(ABC)的对象集合的总称。
A 属性B 操作C 关系D 约束E 继承F 多态G 封装2.1面向对象设计原则首先都是(B)的原则,遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。
A 重载B 复用C 面向对象D 封装E 继承F 多态G抽象2.2以下说法错误的有(BDH)A对于面向对象的软件系统设计来说,在支持可维护性的同时,需要提高系统的可复用性。
B迪米特法则要求一个软件实体应当尽可能多的与其他实体发生相互作用。
C单一职责原则要求在软件系统中,一个类只负责一个功能领域中的相应职责。
D开闭原则要求一个软件实体应当对扩展开放,对修改关闭,但是为了增强系统功能,可以随便的修改源代码。
E里氏代换原则可以通俗表述为在软件中如果能够使用基类对象,那么一定能够使用其子类对象。
F依赖倒转原则要求抽象不应该依赖于细节,细节应该依赖于抽象;要针对接口编程,不要针对实现编程。
G接口隔离原则要求客户端不应该依赖那些它不需要的接口,即将一些大的接口细化成一些小的接口供客户端使用。
H合成复用原则要求复用时尽量使用继承,而不使用对象组合。
3.1 结构型模式分为类模式和对象模式,以下可以是类模式的是(A)A 适配器模式B 桥接模式C 组合模式D 装饰模式E 外观模式F 享元模式G 代理模式3.2设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括以下四个方面(ABDE)A 模式名称B 问题C 目的D 解决方案E 效果F 实例代码G 相关设计模式4.1 以下关于简单工厂模式叙述错误的是(A)A 它属于GoF23种设计模式B 它是最简单的设计模式之一C 它是学习其他创建型模式的基础D 它只需要记住一个简单的参数即可获得所需对象的实例E 它类中的方法通常为静态方法F 它返回的类都有一个公共的父类和公共的方法4.2 简单工厂模式包含三个角色是(ABC)A 工厂角色B 抽象产品口C 具体产品角色D 抽象接口角色E 生产者角色F 用户角色G 使用者角色5.1 Java中的(A)是指在程序运行时获取已知名称的类或已有对象的相关信息的一种机制,包括类的方法、属性、超类等信息,还包括实例的创建和实例类型的判断等A 反射B 继承C 多态D 组合E 聚合F 抽象G 抽象5.2 工厂方法模式与简单工厂模式相比的优点有(ABCD)A 工厂方法模式很好的符合开闭原则B 工厂方法类模式中工厂类职责变轻,业务逻辑相对简单C 具体产品与工厂类之间的耦合降低D工厂方法模式是简单工厂模式的进一步抽象和推广E Factory类内的方法常使用静态方法F 只提供一个工厂类G不需要考虑对象的具体创建细节6.1现有5个产品族,分布于3各不同的产品等级结构,只要指明一个产品所处的产品族以及它所在的等级结构,就可以唯一地确认这个产品。
体系结构期末复习一、选择题(一)1. 设计模式的基本原理是( C )A. 面向实现编程B. 面向对象编程C. 面向接口编程D. 面向组合编程2. 设计模式的两大主题是( D )A. 系统的维护与开发B. 对象组合与类的继承C. 系统架构与系统开发D. 系统复用与系统扩展3. 依据设计模式思想,程序开发中应优先使用的是( A )关系实现复用。
A. 组合聚合B. 继承C. 创建D. .以上都不对4. 关于继承表述错误的是( D )A. 继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。
B. 泛化类(超类)可以显式地捕获那些公共的属性和方法。
特殊类(子类)则通过附加属性和方法来进行实现的扩展。
C. 破坏了封装性,因为这会将父类的实现细节暴露给子类。
D. 继承本质上是“白盒复用”,对父类的修改,不会影响到子类。
5. 常用的设计模式可分为( A )A. 创建型、结构型和行为型B. 对象型、结构型和行为型C. 过程型、创建型和结构型D. 抽象型、接口型和实现型6. “不要和陌生人说话”是对( D )设计原则的通俗表述。
A. 接口隔离B. 里氏代换C. 依赖倒转D. .迪米特法则7. 在适配器模式中,对象适配器模式是对( A )设计原则的典型应用A. 合成聚合B. 里氏代换C. 依赖倒转D. .迪米特法则8. 将一个类的接口转换成客户希望的另一个接口,这句话是对(C)设计模式的描述A. 策略模式B. 桥接模式C. 适配器模式D. 单例模式9. 以下设计模式中属于结构模式的是( D )A. 观察者模式B. 单例模式C. 策略模式D. 外观模式10. 以下不属于对象行为型模式是( D )A. 命令模式B. 策略模式C. 访问者模式D. 桥接模式11. 下面的类图表示的是哪个设计模式( D )A. 抽象工厂模式B. 观察者模式C. 策略模式D. 桥接模式12. Open-Close开闭原则的含义是一个软件实体( A )A. 应当对扩展开放,对修改关闭。
设计模式习题及参考答案《设计模式》复习题⼀、单选题1.不同级别的⽤户对同⼀对象拥有不同的访问权利或某个客户端不能直接操作到某个对象,但⼜必须和那个对象有所互动,这种情况最好使⽤什么设计模式( )A. Bridge模式B. Facade模式C. Adapter模式D. Proxy模式2.模式常⽤的基本设计模式可分为( )A.创建型、结构型和⾏为型B.对象型、结构型和⾏为型C.过程型、结构型和⾏为型D.抽象型、接⼝型和实现型3.以下哪个模式是利⽤⼀个对象,快速地⽣成⼀批对象( )A. 抽象⼯⼚(Abstract Factory)模式B. 合成(Composite)模式C. 原型(Prototype)模式D. 桥接(Bridge)模式4.以下不属于结构型模式是( )A. COMPOSITE(组合)B. ADAPTER(适配器)C. FLYWEIGHT(享元)D. SINGLETON(单例)5.以下意图那个是⽤来描述ABSTRACT FACTORY(抽象⼯⼚)模式( ) 。
A.提供⼀个创建⼀系列相关或相互依赖对象的接⼝,⽽⽆需指定它们具体的类。
B.定义⼀个⽤于创建对象的接⼝,让⼦类决定实例化哪⼀个类。
C.将⼀个类的接⼝转换成客户希望的另外⼀个接⼝。
D.表⽰⼀个作⽤于某对象结构中的各元素的操作。
6.设计模式的两⼤主题是( )A.系统的维护与开发 B 对象组合与类的继承C.系统架构与系统开发D.系统复⽤与系统扩展7.外观模式的作⽤是()A.当不能采⽤⽣成⼦类的⽅法进⾏扩充时,动态地给⼀个对象添加⼀些额外的功能。
B.为了系统中的⼀组功能调⽤提供⼀个⼀致的接⼝,这个接⼝使得这⼀⼦系统更加容易使⽤。
C.保证⼀个类仅有⼀个实例,并提供⼀个访问他的全局访问点。
D.在⽅法中定义算法的框架,⽽将算法中的⼀些操作步骤延迟到⼦类中实现某软件公司欲设计⼀款图像处理软件,帮助⽤户对拍摄的照⽚进⾏后期处理。
在软件需求分析阶段,公司的系统分析师识别出了如下3个关键需求:图像处理软件需要记录⽤户在处理照⽚时所有动作,并能够⽀持⽤户动作的撤销与重做等⾏为。
一、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.什么是设计模式?设计模式目标是什么?答:设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
23种设计模式考题设计模式是软件开发中常用的解决问题的方法论,它们提供了一套经过验证的解决方案,可以帮助开发者更好地组织和设计代码。
下面是23种常见的设计模式的考题及其回答:1. 单例模式:问,请解释什么是单例模式,并说明它的优缺点。
答,单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点。
其优点是可以节省系统资源,提高性能;缺点是可能引入全局状态,使代码难以调试和测试。
2. 工厂模式:问,请解释什么是工厂模式,并列举其主要类型。
答,工厂模式是一种创建型设计模式,它将对象的创建过程封装在一个工厂类中。
主要类型包括简单工厂模式、工厂方法模式和抽象工厂模式。
3. 抽象工厂模式:问,请解释什么是抽象工厂模式,并说明它与工厂方法模式的区别。
答,抽象工厂模式是一种创建型设计模式,它提供一个接口,用于创建一系列相关或依赖对象的家族。
与工厂方法模式不同的是,抽象工厂模式强调创建一系列相关对象,而不是一个对象。
4. 建造者模式:问,请解释什么是建造者模式,并说明它的优势。
答,建造者模式是一种创建型设计模式,它将一个复杂对象的构建过程分解为多个简单的步骤,并通过一个指导者类来控制构建过程。
其优势是可以灵活地构建不同的产品,同时隐藏了产品的内部结构。
5. 原型模式:问,请解释什么是原型模式,并说明它的适用场景。
答,原型模式是一种创建型设计模式,它通过复制现有对象来创建新对象,而不是通过实例化类。
适用场景包括需要创建大量相似对象、对象的创建过程复杂或耗时等情况。
6. 适配器模式:问,请解释什么是适配器模式,并说明它的作用。
答,适配器模式是一种结构型设计模式,它将一个类的接口转换成客户端所期望的另一个接口。
它的作用是使原本不兼容的接口能够协同工作。
7. 桥接模式:问,请解释什么是桥接模式,并说明它与适配器模式的区别。
答,桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。
(1)以下是模式的基本要素的是。
ABCDA)名称B)意图C)解决方案D)参与者和协作者(2)常用的描述设计模式的格式有。
ABCDA)意图B)动机C)适用性D)结构(3)以下哪些问题通过应用设计模式能够解决。
ADA)指定对象的接口B)排除软件BUG C)确定软件的功能都正确实现D)设计应支持变化(4)面向对象系统中功能复用的最常用技术是。
ABA)类继承B)对象组合C)使用抽象类D)使用实现类(5)以下属于行为对象模式的是。
ABCDA)模板(Template Method)模式B)迭代器(Iterator)模式C)命令(Command)模式D)观察者(Observer)模式(6)以下属于创建型模式的是。
ACA)抽象工厂(Abstract Factory)模式B)合成(Composite)模式C)单例(Singleton)模式D)桥接(Bridge)模式(7)在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。
主要体现在。
ADA)适配器(Adapte)模式B)合成(Composite)模式C)原型(Prototype)模式D)桥接(Bridge)模式(8)单例模式中,两个基本要点( a b )和单子类自己提供单例A .构造函数私有 B.唯一实例C.静态工厂方法D.以上都不对(9)常用的基本设计模式可分为。
AA)创建型、结构型和行为型B)对象型、结构型和行为型C)过程型、结构型和行为型D)抽象型、接口型和实现型(10)以下关于创建型模式说法正确的是。
AA)创建型模式关注的是对象的创建B)创建型模式关注的是功能的实现C)创建型模式关注的是组织类和对象的常用方法D)创建型模式关注的是对象间的协作(11)封装分布于多个类之间的行为的模式是。
CA)观察者(Observer)模式B)迭代器(Iterator)模式C)访问者(Visitor)模式D)策略(Strategy)模式(12)Observer(观察者)模式适用于。
三、题目预测填空题:1.请从外观、组合、工厂方法、模板方法、观察者、单件、抽象工厂、命令、迭代器、代理、适配器模式中选择7种填入下列的空缺中。
P6101) 工厂方法模式中,父类负责定义创建对象的公共接口,子类决定要创建的具体类是哪一个。
2) 抽象工厂模式提供一系列相关或相互依赖对象的接口而无需指定它们具体的类。
3) 单件模式确保某一个类仅有一个实例,并自行实例化并向整个系统提供这个实例。
4) 组合模式将对象组合成树形结构以表示“部分-整体”的层次结构。
使得用户对单个对象和组合对象的使用具有一致性。
5) 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面,简化了一群类的接口。
6) 观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新,也就是让对象能在状态改变时被通知。
7) 模板模MVC模型式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
8) 迭代器模式在对象的集合之中游走,而不暴露集合的实现。
9) 代理模式包装对象,以控制对比对象的访问。
10) 适配器模式封装对象,并提供不同的接口。
2.工厂模式分为(简单工厂),(工厂方法),(抽象工厂)三种类型。
3.适配器模式,分为类的适配器和对象的适配器两种实现。
其中类的适配器采用的是(继承)关系,而对象适配器采用的是(组合聚合)关系。
4.设计模式的基本要素有(名字),(意图),(问题),(解决方案),(参与者与协作者),(实现),(一般性结构)。
5.MVC模型的基本工作原理是基于(观察者)模式,实现是基于(命令)模式6.面向对象的六条基本原则包括:开闭原则,里式代换原则,合成聚合原则以及(依赖倒转),(迪米特法则)(接口隔离)。
7.当我们想用不同的请求对客户进行参数化时,可以使用(命令)模式。
8.当我们想封装不同算法并使它们可相互替换时,可以使用(策略)模式。
《JAVA设计模式》复习资料一、单项选择题1.设计模式起源于()A、机械设计B、建筑工程设计C、水利工程设计D、工业电力化设计2.“不要和陌生人说话”是()原则的通俗表述。
A、接口隔离B、里氏替换C、依赖倒置D、迪米特3.目前常见的设计模式主要有()种。
A、23B、21C、32D、284.以下关于单一职责原则的叙述不正确的是()。
A、单一职责原则的英文名称是Single Responsibility Principle.B、单一职责原则要求一个类只有一个职责C、单一职责原则有利于对象的稳定,降低类的复杂性D、单一职责原则提高了类之间的耦合性5.以下关于依赖倒置原则的叙述不正确的是()A、依赖倒置原则的简称是DIPB、高层模块不依赖于低层模块,低层模块依赖于高层模块C、依赖倒置原则中高层模块和低层模块都依赖于抽象D、依赖倒置原则实现模块间的松耦合6.下面关于单例模式说法错误的是()A、单例模式是指一个类只有一个实例B、单例类从实现方式上分为懒汉式和饿汉式C、单例类从功能上分为状态单例类和无状态单例类D、可以通过继承的方式对单例类进行扩展得到功能更丰富的单例类7.下面关于工厂方法模式说法错误的是()。
A、工厂方法模式使一个类是实例化延迟到其子类中B、工厂方法模式中具有抽象工厂、具体工厂、抽象产品和具体产品4个角色C、工厂方法模式可以处理多个产品的多个等级结构D、工厂方法模式可以屏蔽产品类8.在以下情况不适合使用责任职责链模式()A、有多个对象可以处理请求,哪个对象处理该请求在运行时刻自动确定。
B、在需要用比较通用和复杂的对象指针代替简单的指针的时候。
C、你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。
D、一个请求需要一系列的处理工作。
9.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式A、结构型B、创建型C、行为型D、以上都可以10.以下用来描述适配器模式的是()A、表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
三、题目预测填空题:1.请从外观、组合、工厂方法、模板方法、观察者、单件、抽象工厂、命令、迭代器、代理、适配器模式中选择7种填入下列的空缺中。
P6101) 工厂方法模式中,父类负责定义创建对象的公共接口,子类决定要创建的具体类是哪一个。
2) 抽象工厂模式提供一系列相关或相互依赖对象的接口而无需指定它们具体的类。
3) 单件模式确保某一个类仅有一个实例,并自行实例化并向整个系统提供这个实例。
4) 组合模式将对象组合成树形结构以表示“部分-整体”的层次结构。
使得用户对单个对象和组合对象的使用具有一致性。
5) 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面,简化了一群类的接口。
6) 观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新,也就是让对象能在状态改变时被通知。
7) 模板模MVC模型式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
8) 迭代器模式在对象的集合之中游走,而不暴露集合的实现。
9) 代理模式包装对象,以控制对比对象的访问。
10) 适配器模式封装对象,并提供不同的接口。
2.工厂模式分为(简单工厂),(工厂方法),(抽象工厂)三种类型。
3.适配器模式,分为类的适配器和对象的适配器两种实现。
其中类的适配器采用的是(继承)关系,而对象适配器采用的是(组合聚合)关系。
4.设计模式的基本要素有(名字),(意图),(问题),(解决方案),(参与者与协作者),(实现),(一般性结构)。
5.MVC模型的基本工作原理是基于(观察者)模式,实现是基于(命令)模式6.面向对象的六条基本原则包括:开闭原则,里式代换原则,合成聚合原则以及(依赖倒转),(迪米特法则)(接口隔离)。
7.当我们想用不同的请求对客户进行参数化时,可以使用(命令)模式。
8.当我们想封装不同算法并使它们可相互替换时,可以使用(策略)模式。
9. 每一个设计模式都集中于一个特定的(设计问题),描述了(相互通信的对象)或者(类)以及(解决方案)和(解决效果)。
10.设计模式中应优先使用(对象组合)而不是(类继承)。
11.面向对象(OO)的基础包括(抽象)(封装)(多态)(继承)。
12.(状态模式)允许一个对象基于内部状态而拥有不同的行为。
13.模式不是代码,而是(针对设计问题)的通用解决方案。
14.观察者模式定义了对象之间(一对多)的关系。
15.观察者和可观察者之间用(松耦合方式)结合。
16.设计模式的两大主题是:(对象组合)和(类继承)的讨论。
17.(组合)和(委托)可用于运行时动态地加上新的行为。
18.工厂方法使用(继承)把对象的创建委托给子类,子类实现了工厂方法来创建对象。
19.抽象工厂方法使用(对象组合)使对象的创建被实现在工厂接口所暴露出来的方法中。
20.在Java中实现单件模式,需要私有的(构造器)(一个静态方法)和(一个静态变量)21.命令模式将(发出请求)的对象和(执行请求)的对象解耦。
22.当需要一个现有的类而其接口不符合需求时,可使用(适配器)模式。
23.适配器模式的两种模式是(对象适配器)和(类适配器)。
24.(模板方法)定义了算法的步骤,把这些步骤的实现延迟到了子类。
25.(代理模式)为另一个对象提供代表,以便控制客户对对象的访问。
26.装饰着模式为对象加上(行为)而代理模式则是(控制访问)。
27.开闭原则:(扩展开放)(修改关闭)。
28.代理模式分为哪4种:(虚拟代理)(远程代理)(安全代理)(聪明引用)。
选择题1.设计模式具有的优点。
(A)A. 适应需求变化B.程序易于理解C. 减少开发过程中的代码开发工作量D.简化软件系统的设计2.若系统中的某子模块需要为其它模块提供访问不同数据库系统(Oracle、SQL Server、DB2 UDB 等)的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是相同的,例如,先连接数据库,再打开数据库,最后对数据进行查询,(D )设计模式可抽象出相同的数据库访问过程;A. 外观B. 装饰C. 单件D. 模板方法3.系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加三个类,(B )设计模式可以实现该目的。
A. 外观B. 装饰C.单件D. 模板方法4. 下面的类图表示的是哪个模式?(A )A、抽象工厂模式(Abstract Factory)B、工厂方法模式(Factory Method)C、命令模式(Command)D、责任链模式(Chain of Responsibility)5. 下面的类图表示的是哪个设计模式?(B )A、代理模式(Proxy)B、装饰模式(Decorator)C、桥接模式(Bridge)D、观察者模式(Observer)6.下面的类图表示的是哪个模式?(B )A、代理模式(Proxy)B、外观模式(Facade)C、适配器模式(Adapter)D、桥接模式(Bridge)7.下面的类图表明了哪个模式?(D )A、责任链模式(Chain of Responsibility)B、命令模式(Command)C、备忘录模式(Memento)D、工厂方法模式(Factory Method)8. 下面的类图表示的是哪个设计模式?(D )A、模板方法模式(Template Method)B、命令模式(Command)C、单例模式(Singleton)D、状态模式(State)9.下面的类图表示的是哪个设计模式?(C )A、模板方法模式(Template Method)B、命令模式(Command)C、单例模式(Singleton)D、状态模式(State)10.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(A)模式。
A.创建型B.结构型C行为型D.以上都可以11、设计模式的两大主题是( d )A.系统的维护与开发B 对象组合与类的继承C.系统架构与系统开发D.系统复用与系统扩展12、单例模式中,两个基本要点( a b )和单子类自己提供单例A .构造函数私有B.唯一实例C.静态工厂方法D.以上都不对13、下列模式中,属于行为模式的是( b )A.工厂模式B观察者C适配器以上都是14、对象适配器模式是(a )原则的典型应用。
A.合成聚合复用原则B.里式代换原则C.依赖倒转原则D.迪米特法则15、静态工厂的核心角色是(a)A.抽象产品B.具体产品C.静态工厂D.消费者16、在观察者模式中,表述错误的是(c )A.观察者角色的更新是被动的。
B.被观察者可以通知观察者进行更新C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。
D.以上表述全部错误。
17、以下关于创建型模式说法正确的是。
(A)A.创建型模式关注的是对象的创建B.创建型模式关注的是功能的实现C.创建型模式关注的是组织类和对象的常用方法D.创建型模式关注的是对象间的协作18.常用的描述设计模式的格式有(ABCD)。
A.意图B.动机C.适用性D.结构19.以下关于结构型模式说法正确的是(ACD)。
A.结构型模式可以在不破坏类封装性的基础上,实现新的功能。
B.结构型模式主要用于创建一组对象。
C.结构型模式可以创建一组类的统一访问接口D.结构型模式可以在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。
20.以下属于结构型模式的是(AB)。
A.代理(Proxy)模式B.合成(Composite)模式C.命令(Command)模式D.观察者(Observer)模式21.在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。
主要体现在(AD)。
A.适配器(Adapte)模式B.合成(Composite)模式C.原型(Prototype)模式D.桥接(Bridge)模式22.结构型模式中最体现扩展性的几种模式是(BC)。
A.适配器(Adapte)模式B.合成(Composite)模式C.装饰(Decorator)模式D.桥接(Bridge)模式23.行为类模式使用( B )在类间分派行为。
A.接口B.继承机制C.对象组合D.委托24.以下属于行为对象模式的是( BCD )。
A.模板(Template Method)模式B.迭代器(Iterator)模式C.命令(Command)模式D.观察者(Observer)模式25.封装分布于多个类之间的行为的模式是( C ) 。
A.观察者(Observer)模式B.迭代器(Iterator)模式C.访问者(Visitor)模式D.策略(Strategy)模式26.利用继承来提供DUCK的行为,会导致下列那些缺点?(ABCD)A.代码在多个子类中重复B.运行时的行为不容易改变C.我们不能让鸭子跳舞D.改变会牵一发而动全身,造成其他鸭子不想要的改变简答题: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种。
创建型设计模式:简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式;结构型设计模式:适配器模式,桥接模式,组合模式,装饰模式,外观模式,轻量级模式,代理模式;行为性设计模式:责任链模式,命令模式,解释器模式,迭代器模式,中介者模式,备忘录模式,观察者模式,状态模式,策略者模式,模板方法模式,访问者模式。