设计模式-复习题

合集下载

2022年设计模式期末复习

2022年设计模式期末复习

2022年设计模式期末复习设计模式期末复习题1、以下哪个模式是利用一个对象,快速地生成一批对象:()2、要针对接口编程,不要针对实现编程是()原则的一种表述。

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

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

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

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

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

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

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

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

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

E.此题没有正确答案。

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

设计模式复习题

设计模式复习题

(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.当我们想封装不同算法并使它们可相互替换时,可以使用(策略)模式。

(完整word版)软件设计模式复习题

(完整word版)软件设计模式复习题

软件设计模式复习题1、熟悉每个设计模式的定义、模式UML图解、模式使用情形以及模式优缺点。

2、设计模式的两大主题是什么?3、设计模式分成几大类?每大类各包含哪些模式?4、为什么要使用设计模式?使用设计模式有哪些好处?5、比较抽象工厂模式和工厂方法模式相似性和差异性。

什么情况下使用抽象工厂模式?什么情形下使用工厂方法模式?6、简述原型模式中浅层克隆和深度克隆的区别?分别给出代码说明。

7、模板方法和普通的实现类继承抽象类方式有何区别?8、是比较和分析适配器模式和桥接模式之间的共性和差异性。

9、请用组合模式实现学校人事管理模式。

10、综合应用装饰模式、命令模式和状态模式实现工具条命令按钮鼠标进入时高亮显示状态以及鼠标单击按钮后呈现凹陷状态,表明当前按钮为选中状态。

11、请阐述享元模式是如何节省系统内存的?试举例分析使用享元模式前后的内存节约之比。

12、使用解析器模式实现对学生成绩表的查询输入语句进行解析并执行查询,成绩表结14、试比较和分析中介者模式和观察者模式之间的相似性和差异性?两者是否能够相互转化?15、模板方法和普通的抽象类继承有什么区别?16、使用访问者模式对12题中的学生信息进行报到。

1、熟悉每个设计模式的定义、模式UML图解、模式使用情形以及模式优缺点。

(见书)答:单件模式:①单例模式:class Sin glet on {private static Sin gleton in sta nee;private Sin glet on(){}public static Sin glet on Get In sta nce(){if (in sta nee == n ull) {in sta nee = new Sin glet on();}retur n in sta nee; }客户端代码:class Program{static void Main(string[] args) {Sin glet on s1 = Sin glet on .Getl nsta nce();Sin glet on s2 = Sin glet on .Getl nsta nce();if (s1 = = s2) {Con sole.WriteL in e("Objects are the same in sta nee");}Co nsole.Read();}}②多线程时的单例(Lock是确保当一个线程位于代码的临界区时,另一个线程不进入临界区。

设计模式习题及参考答案

设计模式习题及参考答案

《设计模式》复习题一、单选题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个关键需求:图像处理软件需要记录用户在处理照片时所有动作,并能够支持用户动作的撤销与重做等行为。

java设计模式期末考试和答案

java设计模式期末考试和答案

java设计模式期末考试和答案## Java设计模式期末考试和答案### 一、选择题(每题2分,共10分)1. 以下哪个不是设计模式的分类?A. 创建型模式B. 结构型模式C. 行为型模式D. 功能型模式**答案:D**2. 单例模式属于哪种类型的设计模式?A. 创建型模式B. 结构型模式C. 行为型模式D. 功能型模式**答案:A**3. 以下哪个设计模式不是创建型模式?A. 工厂方法模式B. 抽象工厂模式C. 建造者模式D. 观察者模式**答案:D**4. 策略模式属于哪种类型的设计模式?A. 创建型模式B. 结构型模式C. 行为型模式D. 功能型模式**答案:C**5. 以下哪个不是结构型模式?A. 适配器模式B. 装饰器模式C. 代理模式D. 命令模式**答案:D**### 二、填空题(每题2分,共10分)1. 工厂方法模式中,工厂方法是一个______方法,用于创建______对象。

**答案:接口;具体产品**2. 建造者模式中,Director类负责______产品的构建过程,Builder类定义______产品对象的内部表示。

**答案:指导;创建**3. 代理模式中,Subject接口定义了______和______两个角色需要实现的方法。

**答案:RealSubject;Proxy**4. 观察者模式中,当______对象状态发生改变时,会通知所有______对象。

**答案:Subject;Observer**5. 策略模式中,Context类持有一个______对象的引用,用于执行算法。

**答案:Strategy**### 三、简答题(每题10分,共30分)1. 请简述单例模式的实现方式,并说明其优缺点。

**答案:**单例模式的实现方式通常有两种:懒汉式和饿汉式。

懒汉式在第一次调用时创建实例,而饿汉式在类加载时就创建实例。

优点是保证了全局只有一个实例,并提供一个全局访问点。

缺点是如果实例化对象需要很多资源,那么在不需要时也会占用这些资源。

(完整word版)设计模式的题库(word文档良心出品)

1.设计模式的原理? (C)A. 面对实现编程B. 面向对象编程C. 面向接口编程D. 面向组合编程2. 以下对"开-闭"原则的一些描述错误的是?(A)A. "开-闭"原则与"对可变性的封装原则"没有相似性.B. 找到一个系统的可变元素,将它封装起来,叫"开-闭"原则C. 对修改关闭: 是其原则之一D. 从抽象层导出一个或多个新的具体类可以改变系统的行为,是其原则之一3.以下不属于创建型模式是? (A)A.PROXY(代理)B.BUILDER(生成器)C. PROTOTYPE(原型)D.SINGLETON(单件)4.以下不属于结构型模式是? (D)A. COMPOSITE(组合)B. ADAPTER(适配器)C. FLYWEIGHT(享元)D. SINGLETON(单例)5.以下不属于行为型模式是? (D )A. COMMAND(命令)B. STRATEGY(策略)C. MEMENTO(备忘录)D. BRIDGE(桥接)/*23模式意图*/6.以下意图那个是用来描述ABSTRACT FACTORY(抽象工厂)?(A)A.提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

B.定义一个用于创建对象的接口,让子类决定实例化哪一个类。

C.将一个类的接口转换成客户希望的另外一个接口。

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

7.以下意图那个是用来描述BUILDER(生成器)?(B)A.定义一个用于创建对象的接口,让子类决定实例化哪一个类B.将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

C.保证一个类仅有一个实例,并提供一个访问它的全局访问点。

D.运用共享技术有效地支持大量细粒度的对象。

8.以下意图那个是用来描述FACTORY METHOD(工厂方法)?(C)A.提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

设计模式复习

一、综合题:1、问:解答:(1)策略模式:定义了一系列的算法,并将每一个算法封装起来,并让它们还可以相互替换。

策略模式让算法独立于使用它的客户而独立变化,也称政策模式。

(2)类图如下:(3)代码如下:2、问:对开闭原则的理解与看法(原则与设计模式结合)解答:(1)含义:Open-Closed Principle(OCP):Software entities should be open for extension,but cloesd for modification.一个软件实体应当对扩展开发,对修改关闭。

(2)类图(3)用组合模式说明开闭原则的优点:组合模式为了系统的扩展性,将整体和部分都实现同一个接口,这样使得不管是整体还是部分都可以扩展,很好的满足了开闭原则。

对系统的二次开发和功能扩展很有利!(4)优点:A、可复用性好。

我们可以在软件完成以后,仍然可以对软件进行扩展,加入新的功能,非常灵活。

因此,这个软件系统就可以通过不断地增加新的组件,来满足不断变化的需求。

B、可维护性好。

由于对于已有的软件系统的组件,特别是它的抽象底层不去修改,因此,我们不用担心软件系统中原有组件的稳定性,这就使变化中的软件系统有一定的稳定性和延续性。

3、问:工厂方法模式与抽象工厂方法模式的区别解答:(1)概念:工厂方法模式(factory method):将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化(创建)哪一个类。

抽象工厂模式(Abstract Factory):提供了一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类。

(2)类图:工厂方法模式类图:抽象工厂模式类图:(3)优缺点:工厂方法模式的主要优点:是增加新的产品类时无须修改系统,并封装了产品对象的创建细节,系统具有良好的灵活性和可扩展性。

其缺点是:在于增加新产品的同时需要增加新的工厂,导致系统类的个数成对增加,在一定程度上增加了系统的复杂性。

设计模式题库以及答案

一、选择题(20分,20个)二、简答题(30分,6个)1、框架的定义是框架就是一组相互协作的类,对于特定的一类软件,框架构成了一种可重用的设计。

2、架构是一个软件系统从整体到部分的最高层次的划分。

架构包括架构元件(Architecture Component)、联结器(Connector)、任务流(Task-flow)3、架构的目标:可靠性、安全性、可拓展性、可定制化、可维护性、客户体验、市场时机4、架构分成三种:逻辑架构、物理架构、系统架构5、架构的两要素:元件划分、设计决定6、设计模式是一系列在实践中总结出来的可复用的面向对象的软件设计方法7、划分三种不同层次的模式:架构模式(Architectural Pattern)、设计模式(Design Pattern)、成例(Idiom)。

成例有时称为代码模式(Coding Pattern)。

8、创建型设计模式,如工厂方法(Factory Method)模式、抽象工厂(Abstract Factory)模式、原型(Prototype)模式、单例(Singleton)模式,建造(Builder)模式9、结构型设计模式,如合成(Composite)模式、装饰(Decorator)模式、代理(Proxy)模式、享元(Flyweight)模式、门面(Facade)模式、桥梁(Bridge)模式10、架构模式描述软件系统里的基本的结构组织或纲要11、常见的架构模式:分层模式、黑板模式、中介模式、分散过程模式、微核模式12、框架与架构之间的关系:架构确定了系统整体结构、层次划分,不同部分之间的协作等设计考虑。

框架比架构更具体。

更偏重于技术涉嫌。

确定框架后,软件体系结构也随之确定,而对于同一软件体系结构(比如Web开发中的MVC),可以通过多种框架来实现13、框架与设计模式之间的关系:设计模式研究的是一个设计问题的解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的思想可以在框架设计中进行应用14、框架和设计模式存在着显著的区别:应用领域(前者单一解决方案可在不同框架上用)、内容(模式单纯设计、框架式设计与代码的混合体)15、设计模式比框架更容易移植16、类之间的关系:关联(自身关联、单向、双向实线箭头)、聚合(空心箭头)/组合<包容>(实心箭头)、依赖(虚线箭头)、泛华(继承,实线三角形)、实现(虚线三角形)17、基本元素符:类、包、接口18、开闭(OCP)原则:一个软件实体应当对扩展开放,对修改关闭。

设计模式复习

设计模式复习一、选择题(10×2)二、填空题(6×2)三、连线题(8×2)四、模式说明(20)名称,解决方案,结构,优缺点五、综合应用(20)1.创建型模式:是创建对象而不是直接实例化对象(new),使程序在判断给定情况下创建哪一个对象时更为灵活。

2.结构型模式:怎样安排系统内的各个对象,使其分布合理、易于理解、管理和维护。

3.行为型模式:定义系统内对象间的交互和通信。

•根据作用范围分:1.类模式:处理类和子类之间的关系(静态)2.对象模式:处理对象之间的关系,在运行时可以变化(动态)一、创建型模式1)Abstract Factory(抽象工厂)模式2)Factory Method(工厂方法)模式3)Singleton(单件)模式二、结构型模式1)Adapter(适配器)模式2)Composite(组合)模式3)Decorator(装饰)模式4)Facade(外观)模式5)Proxy(代理)模式三、行为模式1)Command(命令)模式2)Iterator(迭代器)模式3)Mediator(中介者)模式4)Observer(观察者)模式5)Strategy(策略)模式模式基础:接口:1.接口中的成员变量默认都是public static final 类型的。

2.接口中的方法默认都是public abstract 类型的。

3.接口没有构造方法,不允许创建接口的实例。

4.接口必须通过其他类来实现它的抽象方法。

5.一个类可以实现多个接口。

6.我们可以定义一个新的接口,用extends关键字去继承一个已有的接口。

注意:只能接口继承接口,类不能继承接口。

一、创建型模式1)Abstract Factory(抽象工厂)模式(对象创建型模式)与工厂方法模式的区别:抽象工厂模式与工厂方法模式最大的区别在于,工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构。

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

(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(观察者)模式适用于。

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

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

C)当一个对象必须通知其它对象,而它又不能假定其它对象是谁。

也就是说你不希望这些对象是紧密耦合的。

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

(13)Java的异常处理机制可理解为哪一种行为模式。

CA)观察者(Observer)模式B)迭代器(Iterator)模式C)职责链(Chain of Responsibility)模式D)策略(Strategy)模式(14)结构型模式中最体现扩展性的几种模式是。

CA)适配器(Adapte)模式B)合成(Composite)模式C)装饰(Decorator)模式D)桥接(Bridge)模式(15)行为类模式使用在类间分派行为。

CA)接口B)继承机制C)对象组合D)委托(16)以下哪个模式是利用一个对象,快速地生成一批对象。

CA)抽象工厂(Abstract Factory)模式B)合成(Composite)模式C)原型(Prototype)模式D)桥接(Bridge)模式1、设计模式一般用来解决什么样的问题( a)A.同一问题的不同表相B不同问题的同一表相C.不同问题的不同表相D.以上都不是2、下列属于面向对象基本原则的是( c )A.继承B.封装C.里氏代换D都不是3、Open-Close原则的含义是一个软件实体( a )A.应当对扩展开放,对修改关闭.B.应当对修改开放,对扩展关闭C.应当对继承开放,对修改关闭D.以上都不对4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(a )模式。

A.创建型B.结构型C行为型D.以上都可以5、要依赖于抽象,不要依赖于具体。

即针对接口编程,不要针对实现编程,是( d )的表述A.开-闭原则B.接口隔离原则C.里氏代换原则D.依赖倒转原则6、依据设计模式思想,程序开发中应优先使用的是( a )关系实现复用。

A, 委派 B.继承C创建 D.以上都不对7、设计模式的两大主题是( d )A.系统的维护与开发 B 对象组合与类的继承C.系统架构与系统开发D.系统复用与系统扩展8、单例模式中,两个基本要点( a b )和单子类自己提供单例A .构造函数私有 B.唯一实例C.静态工厂方法D.以上都不对9、下列模式中,属于行为模式的是( b )A.工厂模式B观察者C适配器以上都是10、“不要和陌生人说话”是( d )原则的通俗表述A.接口隔离B.里氏代换C.依赖倒转D.迪米特:一个对象应对其他对象尽可能少的了解11、构造者的的退化模式是通过合并(c )角色完成退化的。

A.抽象产品B产品C创建者D使用者12、单子(单例,单态)模式类图结构如下:下列论述中,关于”0..1”表述的不正确的是( d )A.1表示,一个单例类中,最多可以有一个实例.B.”0..1”表示单例类中有不多于一个的实例C.0表示单例类中可以没有任何实例D.0表示单例类可以提供其他非自身的实例13、对象适配器模式是(a )原则的典型应用。

A.合成聚合复用原则B.里式代换原则C.依赖倒转原则D.迪米特法则14、静态工厂的核心角色是(a)A.抽象产品B.具体产品C.静态工厂D.消费者15、下列关于静态工厂与工厂方法表述错误的是:(a )A.两者都满足开闭原则:静态工厂以if else方式创建对象,增加需求的时候会修改源代码B.静态工厂对具体产品的创建类别和创建时机的判断是混和在一起的,这点在工厂方法中C.不能形成静态工厂的继承结构D.在工厂方法模式中,对于存在继承等级结构的产品树,产品的创建是通过相应等级结构的工厂创建的。

16、在观察者模式中,表述错误的是(c )A.观察者角色的更新是被动的。

B.被观察者可以通知观察者进行更新C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。

D.以上表述全部错误。

17.对于违反里式代换原则的两个类,可以采用的候选解决方案错误的是:(d )A.创建一个新的抽象类C,作为两个具体类的超类,将A 和B 共同的行为移动到C 中,从而解决A和B 行为不完全一致的问题。

B.将B到A的继承关系改组成委派关系。

C.区分是“IS-a”还是”Has-a”。

如果是“Is-a”,可以使用继承关系,如果是”Has-a”应该改成委派关系D.以上方案错误18.对象组合的有点表述不当的是(d )A. 容器类仅能通过被包含对象的接口来对其进行访问。

B. “黑盒”复用,封装性好,因为被包含对象的内部细节对外是不可见。

C. 通过获取指向其它的具有相同类型的对象引用,可以在运行期间动态地定义(对象的)组合D.造成极其严重的依赖关系。

19.关于继承表述错误的是:(d )A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。

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

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

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

D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。

20.对于依赖倒转的表述错误的是(e )A.依赖于抽象而不依赖于具体,也就是针对接口编程。

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

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

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

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

E.此题没有正确答案。

填空1.面向对象的六条基本原则包括:开闭原则,里式代换原则,合成聚合原则以及(依赖倒转),(迪米特法则),(单一原则),(接口隔离)。

2.在存在继承关系的情况下,方法向(超类)方向集中,而数据向(子类)方向集中。

3.适配器模式,分为类的适配器和对象的适配器两种实现。

其中类的适配器采用的是(继承)关系,而对象适配器采用的是(组合聚合)关系。

4.设计模式的基本要素有(名字),(意图),(问题),(解决方案),(参与者与协作者),(实现),(一般性结构)。

5.创立型模式的根本意图是要把(对象的创建)和(使用分离)的责任进行分离,从而降低系统的(耦合度)。

6.工厂模式分为(简单工厂),(工厂方法),(抽象工厂)三种类型7.门面模式是(迪米特)法则的典型运用8.MVC模型的基本工作原理是基于(观察者)模式,实现是基于(命令)模式9.设计模式的思想根源是(开闭)基本原则的宏观运用,本质上是没有任何模式的,发现模式的人永远是大师,而死守模式的人,最对只能是一个工匠.10.MVC中使用的模式两种(Observer)观察者模式(Strategy)策略模式(英文单词)判断1. 抽象不应该依赖于细节,细节应当依赖于抽象。

错2. 大多数设计模式还让软件更具有可修改性。

对3. Open-Close原则的含义是一个软件实体应当对扩展开放,对修改关闭。

对4. 常用的设计模式可分为过程型、创建型和结构型。

错5. Adapter模式和Fa?ade模式总是在别的什么东西创造的场景中被定义。

错6. Strategy模式使得算法可独立于使用它的客户而变化。

对7. 从Strategy模式的概念上来说,所有算法都做相同的工作,且拥有相同的实现。

错8. Strategy(策略)模式是一种定义算法家族的方法。

对9. Decorator(装饰)模式的意图是为一个对象连接附加的职责。

错10. 每个Decorator对象在被装饰的功能之前或之后执行自己的附加功能。

对11. 适配器模式属于创建型模式。

错12. 在设计模式中,“效果”只是指“原因和结果”。

对13. 设计模式使代码编制不能真正工程化。

错14. 设计模式的两大主题是系统复用与系统扩展。

对15. Fa?ade(外观)模式不仅可以为方法调用创建更简单的接口,还可以减少客户必须处理的对象数量。

对16. 外观模式,当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能。

错17. Fa?ade模式为子系统中的一组接口提供的界面可能不一致。

错18. Fa?ade外观模式只能为方法调用创建更简单的接口,不能减少客户必须处理的对象数量。

19. 对象适配器模式是合成聚合复用原则的典型应用。

对20. Adapter模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。

对名词解释1. 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

相关文档
最新文档