设计模式复习题.doc
《设计模式复习题.doc》由会员分享,可在线阅读,更多相关《设计模式复习题.doc(11页珍藏版)》请在咨信网上搜索。
三、题目预测 填空题: 1、请从外观、组合、工厂方法、模板方法、观察者、单件、抽象工厂、命令、迭代器、代理、适配器模式中选择7种填入下列得空缺中。P610 1) 工厂方法 模式中,父类负责定义创建对象得公共接口,子类决定要创建得具体类就是哪一个。 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)都继承了组件类(ponent),分别显示文本与图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框得文本显示控件与图片显示控件,但希望最多只增加三个类, ( B )设计模式可以实现该目得。 A、 外观 B、 装饰 C、单件 D、 模板方法 4、 下面得类图表示得就是哪个模式?( A ) A、抽象工厂模式(Abstract Factory) B、工厂方法模式(Factory Method) C、命令模式(mand) 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、命令模式(mand) C、备忘录模式 (Memento) D、工厂方法模式(Factory Method) 8、 下面得类图表示得就是哪个设计模式?( D ) A、模板方法模式(Template Method) B、命令模式 (mand) C、单例模式(Singleton) D、状态模式(State) 9、 下面得类图表示得就是哪个设计模式?( C ) A、模板方法模式(Template Method) B、命令模式 (mand) 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、合成(posite)模式 C、命令(mand)模式 D、观察者(Observer)模式 21、在不破坏类封装性得基础上,使得类可以同不曾估计到得系统进行交互。主要体现在(AD)。 A、适配器(Adapte)模式 B、合成(posite)模式 C、原型(Prototype)模式 D、桥接(Bridge)模式 22、结构型模式中最体现扩展性得几种模式就是(BC)。 A、适配器(Adapte)模式 B、合成(posite)模式 C、装饰(Decorator)模式 D、桥接(Bridge)模式 23、行为类模式使用( B )在类间分派行为。 A、接口 B、继承机制 C、对象组合 D、委托 24、以下属于行为对象模式得就是 ( BCD ). A、模板(Template Method)模式 B、迭代器(Iterator)模式 C、命令(mand)模式 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种。 创建型设计模式:简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式; 结构型设计模式:适配器模式,桥接模式,组合模式,装饰模式,外观模式,轻量级模式,代理模式; 行为性设计模式:责任链模式,命令模式,解释器模式,迭代器模式,中介者模式,备忘录模式,观察者模式,状态模式,策略者模式,模板方法模式,访问者模式。 综合题 1、 某游戏公司现欲开发一款面向儿童得模拟游戏,该游戏主要模拟现实 世界中各种鸭子得发声特征、飞行特征与外观特征.游戏需要模拟得鸭子 种类及其特征如下表所示: 为支持将来能够模拟更多种类鸭子得特征,采用某设计模式设计得类图如下所示: 其中,Duck 为抽象类,描述了抽象得鸭子,而类RubberDuck、MallardDuck、CottonDuck 与RedHeadDuck 分别描述具体得鸭子种类,方法fly()、quack()与display()分别表示不同种类得鸭子都具有飞行特征、发声特征与外观特征;类FlyBehavior 与QuackBehavior为抽象类,分别用于表示抽象得飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行得行为与用翅膀飞行得行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声得行为、发出橡皮与空气摩擦声得行为与不发声得行为。 [C++代码] #include〈iostream> using namespace std ; class FlyBehavior { public : virtual void fly() = 0; }; class QuackBehavior { public: virtual void quack() = 0; }; class FlyWithWings:public FlyBehavior{ public: void fly(){ cout << "使用翅膀飞行 !” 〈< endl; } }; class FlyNoWay:public FlyBehavior{ public: void fly(){ cout 〈〈 ”不能飞行 !" 〈〈 endl; } }; class Quack:public QuackBehavior{ public: void quack(){ cout << "发出\'嘎嘎\'声 !” << endl; } }; class Squeak:public QuackBehavior{ public: void quack(){ cout << "发出空气与橡皮摩擦声 !” <〈 endl; } }; class QuackNoWay:public QuackBehavior{ public: 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(); quackBehavior = new Squeak(); } ~RubberDuck(){ if(!flyBehavior) delete flyBehavior; if(!quackBehavior) delete quackBehavior; } void 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 AlarmListener{ public void alarm(){ System、out、println(“自动开灯”); } } class Gates implemets AlarmListener{ public void alarm(){ System、out、println(“ 自动关门”); } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 模式 复习题
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文