欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年设计模式复习题 .pdf

    • 资源ID:33000004       资源大小:83.71KB        全文页数:11页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年设计模式复习题 .pdf

    三、题目预测填空题:1.请从外观、组合、工厂方法、模板方法、观察者、单件、抽象工厂、命令、迭代器、代理、适配器模式中选择 7 种填入下列的空缺中。P6101) 工厂方法模式中,父类负责定义创建对象的公共接口,子类决定要创建的具体类是哪一个。2) 抽象工厂模式提供一系列相关或相互依赖对象的接口而无需指定它们具体的类。3) 单件模式确保某一个类仅有一个实例,并自行实例化并向整个系统提供这个实例。4) 组合模式将对象组合成树形结构以表示“ 部分 -整体 ” 的层次结构。 使得用户对单个对象和组合对象的使用具有一致性。5) 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面,简化了一群类的接口。6) 观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新,也就是让对象能在状态改变时被通知。7) 模板模 MVC 模型式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。8) 迭代器模式在对象的集合之中游走,而不暴露集合的实现。9) 代理模式包装对象,以控制对比对象的访问。10) 适配器模式封装对象,并提供不同的接口。2.工厂模式分为 ( 简单工厂 ),( 工厂方法 ),( 抽象工厂 )三种类型。3.适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器采用的是(继承)关系,而对象适配器采用的是(组合聚合)关系。4.设计模式的基本要素有(名字),(意图),(问题), (解决方案), (参与者与协作者), (实现),(一般性结构)。5.MVC 模型的基本工作原理是基于( 观察者 )模式,实现是基于(命令)模式6.面向对象的六条基本原则包括:开闭原则,里式代换原则,合成聚合原则以及(依赖倒转),(迪米特法则)(接口隔离)。7当我们想用不同的请求对客户进行参数化时,可以使用(命令)模式。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 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)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 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) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - 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创建型模式关注的是对象的创建名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 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.委托名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - 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) 有表示模式的名称。3GOF 设计模式常用的有几种?GOF 设计模式按照模式的目的可分为哪三类?答: 行为型,结构型,创建型4画出抽象工厂方法类图(这类题自己看书去。)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - 5.针对接口编程,不针对实现编程的意义。答: 主题与观察者都是用接口:观察者利用主题的接口向主题注册,而主题利用观察者接口通知观察者。这样可以让两者之间运作正常,又同时具有松耦合的优点。6.面向对象( OO)的原则有:答:1.封装变化2.多用组合,少用继承3.针对接口编程,不针对实现编程4.为交互对象之间的松耦合设计而努力5.对扩展开放,对修改关闭6.依赖抽象,不要依赖具体类7.只和朋友交谈8.别找我,我会找你9.类应该只有一个改变的理由7. 耦合分为几种?(1)内容耦合( 2)公共耦合( 3)外部耦合( 4)控制耦合(5)标记耦合( 6)数据耦合( 7)非直接耦合8.GOF 模式分为几种,每种包含哪些模式?答: 分为 3 种。创建型设计模式:简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式;结构型设计模式:适配器模式,桥接模式,组合模式,装饰模式,外观模式,轻量级模式,代理模式;行为性设计模式:责任链模式,命令模式,解释器模式,迭代器模式,中介者模式,备忘录模式,观察者模式,状态模式,策略者模式,模板方法模式,访问者模式。综合题1. 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如下表所示:为支持将来能够模拟更多种类鸭子的特征,采用某设计模式设计的类图如下所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - 其中,Duck 为抽象类, 描述了抽象的鸭子, 而类 RubberDuck 、MallardDuck 、CottonDuck 和 RedHeadDuck分别描述具体的鸭子种类,方法fly() 、quack() 和 display() 分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征; 类 FlyBehavior 与 QuackBehavior 为抽象类, 分别用于表示抽象的飞行行为与发声行为;类 FlyNoWay 与 FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak 与QuackNoWay 分别描述发出 “ 嘎嘎 ” 声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。C+ 代码 #include using namespace std ; classFlyBehavior public : virtual void fly() = 0; ; classQuackBehavior public: virtual void quack() = 0; ; classFlyWithWings:publicFlyBehavior public: void fly() cout 使用翅膀飞行! endl; ; classFlyNoWay:publicFlyBehavior public: void fly() cout 不能飞行! endl; ; classQuack:publicQuackBehavior public: void quack() cout 发出 嘎嘎 声! endl; ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - classSqueak:publicQuackBehavior public: void quack() cout 发出空气与橡皮摩擦声! endl; ; classQuackNoWay:publicQuackBehavior 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() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - 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/定义观察者接口名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 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(“ 自动关门 ” ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -

    注意事项

    本文(2022年设计模式复习题 .pdf)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开