设计模式复习题_第1页
设计模式复习题_第2页
设计模式复习题_第3页
设计模式复习题_第4页
设计模式复习题_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、三、题目猜测 填空题: 1.请从外观、组合、工厂方法、模板方法、观看者、单件、抽象工厂、命令、迭代器、代理、适配器模式中选择7种填入下列的空缺中。P610 1) 工厂方法 模式中,父类负责定义创建对象的公共接口,子类打算要创建的具体类是哪一个。2) 抽象工厂 模式供应一系列相关或相互依靠对象的接口而无需指定它们具体的类。3) 单 件 模式确保某一个类仅有一个实例,并自行实例化并向整个系统供应这个实例。4) 组 合 模式将对象组合成树形结构以表示“部分-整体”的层次结构。使得用户对单个对象和组合对象的使用具有全都性。5) 外 观 模式定义了一个高层接口,这个接口使得这一子系统更加简洁使用,为子系

2、统中的一组接口供应一个全都的界面,简化了一群类的接口。6) 观看者 模式定义对象间的一种一对多的依靠关系,当一个对象的状态发生转变时, 全部依靠于它的对象都得到通知并被自动更新,也就是让对象能在状态转变时被通知。7) 模 板 模MVC模型式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。8) 迭代器模式在对象的集合之中游走,而不暴露集合的实现。9) 代理模式包装对象,以把握对比对象的访问。10) 适配器模式封装对象,并供应不同的接口。2.工厂模式分为(简洁工厂),(工厂方法),(抽象工厂)三种类型。3.适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器接受的是(继承)关系,

3、而对象适配器接受的是(组合聚合)关系。4.设计模式的基本要素有(名字 ),(意图 ),(问题 ),( 解决方案 ),(参与者与协作者 ),( 实现),(一般性结构)。5.MVC模型的基本工作原理是基于(观看者)模式,实现是基于(命令)模式6.面对对象的六条基本原则包括:开闭原则,里式代换原则,合成聚合原则以及(依靠倒转),(迪米特法则)(接口隔离)。7当我们想用不同的恳求对客户进行参数化时,可以使用( 命令 )模式。8当我们想封装不同算法并使它们可相互替换时,可以使用(策略)模式。9. 每一个设计模式都集中于一个特定的(设计问题),描述了(相互通信的对象)或者(类)以及(解决方案)和(解决效果

4、 )。10设计模式中应优先使用(对象组合)而不是(类继承)。11. 面对对象(OO)的基础包括(抽象)(封装)(多态)(继承)。12.(状态模式)允许一个对象基于内部状态而拥有不同的行为。13.模式不是代码,而是(针对设计问题)的通用解决方案。14.观看者模式定义了对象之间(一对多)的关系。15.观看者和可观看者之间用(松耦合方式)结合。16设计模式的两大主题是:(对象组合) 和 (类继承)的争辩。 17.(组合)和(托付)可用于运行时动态地加上新的行为。18.工厂方法使用(继承)把对象的创建托付给子类,子类实现了工厂方法来创建对象。19.抽象工厂方法使用(对象组合)使对象的创建被实现在工厂接

5、口所暴露出来的方法中。20.在Java中实现单件模式,需要私有的(构造器)(一个静态方法)和(一个静态变量)21命令模式将(发出恳求)的对象和(执行恳求)的对象解耦。22.当需要一个现有的类而其接口不符合需求时,可使用(适配器)模式。23.适配器模式的两种模式是(对象适配器)和(类适配器)。24.(模板方法)定义了算法的步骤,把这些步骤的实现延迟到了子类。25.(代理模式)为另一个对象供应代表,以便把握客户对对象的访问。26.装饰着模式为对象加上(行为)而代理模式则是(把握访问)。27.开闭原则:(扩开放放)(修改关闭)。28.代理模式分为哪4种:(虚拟代理)(远程代理)(平安代理)(聪慧引用

6、)。选择题 1设计模式具有的优点。(A)A. 适应需求变化 B.程序易于理解C. 削减开发过程中的代码开发工作量 D.简化软件系统的设计2. 若系统中的某子模块需要为其它模块供应访问不同数据库系统(Oracle、SQL Server、DB2 UDB 等)的功能,这些数据库系统供应的访问接口有肯定的差异,但访问过程却都是相同的,例如,先连接数据库,再打开数据库,最终对数据进行查询,( D ) 设计模式可抽象出相同的数据库访问过程;A. 外观 B. 装饰 C. 单件 D. 模板方法3 系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),

7、分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但期望最多只增加三个类,( 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

8、) 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、状态模式(

9、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、下列

10、模式中,属于行为模式的是( 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创建型模式关注的是功能的实

11、现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.在不破

12、坏类封装性的基础上,使得类可以同不曾估量到的系统进行交互。主要体现在(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.迭代器(Iterat

13、or)模式C.命令(Command)模式 D.观看者(Observer)模式25.封装分布于多个类之间的行为的模式是( C ) 。A.观看者(Observer)模式 B.迭代器(Iterator)模式C.访问者(Visitor)模式 D.策略(Strategy)模式26.利用继承来供应DUCK的行为,会导致下列那些缺点?(ABCD)A代码在多个子类中重复 B.运行时的行为不简洁转变C我们不能让鸭子跳舞D.转变会牵一发而动全身,造成其他鸭子不想要的转变简答题: 1什么是设计模式?设计模式的目标是什么?答: 设计模式通常是对于某一类的软件设计问题的可重用的解决方案,将设计模式引入软件设计和开发过程

14、,其目的就在于要充分利用已有的软件开发阅历。2设计模式具有哪三大特点?答: (1) 在特定的场景下有可重用性,对相同类型不同问题的环境,其解决方案都有效。(2) 可传授性,即问题消灭的机会很多,解决问题的方案相同,人们相对可以接受。(3) 有表示模式的名称。3GOF 设计模式常用的有几种?GOF 设计模式依据模式的目的可分为哪三类?答: 行为型,结构型,创建型4画出抽象工厂方法类图(这类题自己看书去。)5.针对接口编程,不针对实现编程的意义。答: 主题与观看者都是用接口:观看者利用主题的接口向主题注册,而主题利用观看者接口通知观看者。这样可以让两者之间运作正常,又同时具有松耦合的优点。6.面对

15、对象(OO)的原则有:答: 1. 封装变化 2. 多用组合,少用继承 3. 针对接口编程,不针对实现编程 4. 为交互对象之间的松耦合设计而努力 5. 对扩开放放,对修改关闭 6. 依靠抽象,不要依靠具体类 7. 只和伴侣交谈 8. 别找我,我会找你 9. 类应当只有一个转变的理由 7. 耦合分为几种?(1) 内容耦合 (2) 公共耦合 (3) 外部耦合 (4) 把握耦合(5) 标记耦合 (6) 数据耦合 (7) 非直接耦合8.GOF模式分为几种,每种包含哪些模式?答:分为3种。创建型设计模式:简洁工厂模式,工厂方法模式,抽象工厂模式,建筑者模式,原型模式,单例模式;结构型设计模式:适配器模式

16、,桥接模式,组合模式,装饰模式,外观模式,轻量级模式,代理模式;行为性设计模式:责任链模式,命令模式,解释器模式,迭代器模式,中介者模式,备忘录模式,观看者模式,状态模式,策略者模式,模板方法模式,访问者模式。综合题 1. 某玩耍公司现欲开发一款面对儿童的模拟玩耍,该玩耍主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。玩耍需要模拟的鸭子种类及其特征如下表所示:为支持将来能够模拟更多种类鸭子的特征,接受某设计模式设计的类图如下所示:其中,Duck 为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、CottonDuck 和RedHeadDuck 分别描述具体的

17、鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBehavior 与QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。C+代码#include<iostream>using namespace std ;class FlyBehavior public : virtual voi

18、d fly() = 0;class QuackBehavior public: virtual void quack() = 0;class FlyWithWings:public FlyBehaviorpublic: void fly() cout << "使用翅膀飞行 !" << endl; ;class FlyNoWay:public FlyBehaviorpublic: void fly() cout << "不能飞行 !" << endl; ;class Quack:public QuackBeh

19、aviorpublic: void quack() cout << "发出'嘎嘎'声 !" << endl;class Squeak:public QuackBehaviorpublic: void quack() cout << "发出空气与橡皮摩擦声 !" << endl;class QuackNoWay:public QuackBehaviorpublic: void quack () cout << "不能发声 !" << endl; ;class Duck protected:FlyBehavior * flyBehavior;QuackBehavior * quackBehavior;public:void fly() flyBehavior->fly(); void quack() quackBehavior->quack(); ;virtual void display()=0;class RubberDuck: public Duck public:RubberDuck()flyBehavior = new FlyNoWay();quackBeha

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论