ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:20.69KB ,
资源ID:23721842      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23721842.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(设计模式复习题.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

设计模式复习题.docx

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

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

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

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

5、现单件模式,需要私有的(构造器)(一个静态方法)和(一个静态变量)21命令模式将(发出请求)的对象和(执行请求)的对象解耦。22.当需要一个现有的类而其接口不符合需求时,可使用(适配器)模式。23.适配器模式的两种模式是(对象适配器)和(类适配器)。24.(模板方法)定义了算法的步骤,把这些步骤的实现延迟到了子类。25.(代理模式)为另一个对象提供代表,以便控制客户对对象的访问。26.装饰着模式为对象加上(行为)而代理模式则是(控制访问)。27.开闭原则:(扩展开放)(修改关闭)。28.代理模式分为哪4种:(虚拟代理)(远程代理)(安全代理)(聪明引用)。选择题1设计模式具有的优点。(A)A.

6、 适应需求变化 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) D、观察者模式(Observer)6.下面的类图表

8、示的是哪个模式?( 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

9、)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

10、适配器以上都是14、对象适配器模式是( a )原则的典型应用。A.合成聚合复用原则 B.里式代换原则C.依赖倒转原则 D.迪米特法则15、静态工厂的核心角色是(a)A.抽象产品 B.具体产品 C.静态工厂 D.消费者16、在观察者模式中,表述错误的是( c )A.观察者角色的更新是被动的。B.被观察者可以通知观察者进行更新C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。D.以上表述全部错误。17、以下关于创建型模式说法正确的是。(A)A创建型模式关注的是对象的创建B创建型模式关注的是功能的实现C创建型模式关注的是组织类和对象的常用方法D创建型模式关注的是对象

11、间的协作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.迭代器(Iterator)模式C.命令(Command)模式 D.观察者(Observer

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

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

15、程,不针对实现编程4. 为交互对象之间的松耦合设计而努力5. 对扩展开放,对修改关闭6. 依赖抽象,不要依赖具体类7. 只和朋友交谈8. 别找我,我会找你9. 类应该只有一个改变的理由7. 耦合分为几种?(1)内容耦合(2)公共耦合(3)外部耦合(4)控制耦合(5)标记耦合(6)数据耦合(7)非直接耦合8.GOF模式分为几种,每种包含哪些模式?答:分为3种。创建型设计模式:简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式;结构型设计模式:适配器模式,桥接模式,组合模式,装饰模式,外观模式,轻量级模式,代理模式;行为性设计模式:责任链模式,命令模式,解释器模式,迭代器模式

16、,中介者模式,备忘录模式,观察者模式,状态模式,策略者模式,模板方法模式,访问者模式。综合题1. 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如下表所示:为支持将来能够模拟更多种类鸭子的特征,采用某设计模式设计的类图如下所示:其中,Duck 为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、CottonDuck和RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBe

17、havior与QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。C+代码#includeusing namespace std ;classFlyBehavior public : virtual void fly() = 0;classQuackBehavior public: virtual void quack() = 0;classFlyWithWings:p

18、ublicFlyBehaviorpublic: void fly() cout 使用翅膀飞行! endl; ;classFlyNoWay:publicFlyBehaviorpublic: void fly() cout 不能飞行! endl; ;classQuack:publicQuackBehaviorpublic: void quack() cout 发出嘎嘎声! endl;classSqueak:publicQuackBehaviorpublic: void quack() cout 发出空气与橡皮摩擦声! endl;classQuackNoWay:publicQuackBehavior

19、public: void quack () cout 不能发声! fly(); void quack() quackBehavior-quack(); ;virtual void display()=0;classRubberDuck: public Duck public:RubberDuck()flyBehavior = new FlyNoWay();quackBehavior = new Squeak();RubberDuck()if(!flyBehavior) delete flyBehavior;if(!quackBehavior) delete quackBehavior;void

20、 display() /*此处省略显示橡皮鸭的代码 */ ;/其它代码省略请根据上述类图和代码,阐述采用该设计模式进行设计的优势?18.写一个单例模式的程序:static Instance ist=null;public static Singleton getInstance()if(instance=null)synchoronized(Singleton.class)if(instance=null)instance=new Singleton();return instance;19.写一个观察者模式的程序:public interface AlarmListener/定义观察者接口public void alarm();public void soundTheAlarm()System.out.println(“传感器检测到有人入侵”)class Lighting implements AlarmListenerpublic void alarm()System.out.println(“自动开灯”);class Gates implemetsAlarmListenerpublic void alarm()System.out.println(“ 自动关门”);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1