1、三、题目预测 填空题: 1、请从外观、组合、工厂方法、模板方法、观察者、单件、抽象工厂、命令、迭代器、代理、适配器模式中选择7种填入下列得空缺中。P6101) 工厂方法模式中,父类负责定义创建对象得公共接口,子类决定要创建得具体类就是哪一个。2) 抽象工厂 模式提供一系列相关或相互依赖对象得接口而无需指定它们具体得类。3)单 件 模式确保某一个类仅有一个实例,并自行实例化并向整个系统提供这个实例。4) 组合 模式将对象组合成树形结构以表示“部分整体”得层次结构。使得用户对单个对象与组合对象得使用具有一致性.5) 外 观 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,为子系统中得一
2、组接口提供一个一致得界面,简化了一群类得接口.6) 观察者 模式定义对象间得一种一对多得依赖关系,当一个对象得状态发生改变时, 所有依赖于它得对象都得到通知并被自动更新,也就就是让对象能在状态改变时被通知。7) 模 板 模VC模型式定义一个操作中得算法得骨架,而将一些步骤延迟到子类中。8)迭代器模式在对象得集合之中游走,而不暴露集合得实现。9) 代理模式包装对象,以控制对比对象得访问.10) 适配器模式封装对象,并提供不同得接口。2、工厂模式分为(简单工厂),(工厂方法),(抽象工厂)三种类型。3、适配器模式,分为类得适配器与对象得适配器两种实现。其中类得适配器采用得就是(继承)关系,而对象适
3、配器采用得就是(组合聚合)关系。4、设计模式得基本要素有(名字),(意图 ),(问题 ),( 解决方案 ),(参与者与协作者),( 实现),(一般性结构).、MVC模型得基本工作原理就是基于(观察者)模式,实现就是基于(命令)模式6、面向对象得六条基本原则包括:开闭原则,里式代换原则,合成聚合原则以及(依赖倒转),(迪米特法则)(接口隔离)。.当我们想用不同得请求对客户进行参数化时,可以使用( 命令)模式。8。当我们想封装不同算法并使它们可相互替换时,可以使用(策略)模式。9、每一个设计模式都集中于一个特定得(设计问题),描述了(相互通信得对象)或者(类)以及(解决方案)与(解决效果 )。10
4、设计模式中应优先使用(对象组合)而不就是(类继承).、面向对象()得基础包括(抽象)(封装)(多态)(继承)。12、(状态模式)允许一个对象基于内部状态而拥有不同得行为。13、模式不就是代码,而就是(针对设计问题)得通用解决方案。14、观察者模式定义了对象之间(一对多)得关系。15、观察者与可观察者之间用(松耦合方式)结合。16设计模式得两大主题就是:(对象组合) 与 (类继承)得讨论。 1、(组合)与(委托)可用于运行时动态地加上新得行为。18、工厂方法使用(继承)把对象得创建委托给子类,子类实现了工厂方法来创建对象.19、抽象工厂方法使用(对象组合)使对象得创建被实现在工厂接口所暴露出来得
5、方法中。0、在Jaa中实现单件模式,需要私有得(构造器)(一个静态方法)与(一个静态变量)21。命令模式将(发出请求)得对象与(执行请求)得对象解耦。22、当需要一个现有得类而其接口不符合需求时,可使用(适配器)模式。3、适配器模式得两种模式就是(对象适配器)与(类适配器)。24、(模板方法)定义了算法得步骤,把这些步骤得实现延迟到了子类。5、(代理模式)为另一个对象提供代表,以便控制客户对对象得访问。26、装饰着模式为对象加上(行为)而代理模式则就是(控制访问)。27、开闭原则:(扩展开放)(修改关闭)。28、代理模式分为哪4种:(虚拟代理)(远程代理)(安全代理)(聪明引用).选择题 1.
6、设计模式具有得优点。(A)A、 适应需求变化、程序易于理解、 减少开发过程中得代码开发工作量 D、简化软件系统得设计2、 若系统中得某子模块需要为其它模块提供访问不同数据库系统(Ocl、L Srver、DB UD等)得功能,这些数据库系统提供得访问接口有一定得差异,但访问过程却都就是相同得,例如,先连接数据库,再打开数据库,最后对数据进行查询,( D ) 设计模式可抽象出相同得数据库访问过程;A、 外观 B、 装饰 C、 单件 、 模板方法3. 系统中得文本显示类(TeVie)与图片显示类(PictreView)都继承了组件类(ponet),分别显示文本与图片内容,现需要构造带有滚动条、或者带
7、有黑色边框、或者既有滚动条又有黑色边框得文本显示控件与图片显示控件,但希望最多只增加三个类,( B )设计模式可以实现该目得。、外观 、 装饰C、单件 、 模板方法4、下面得类图表示得就是哪个模式?( A)A、抽象工厂模式(bsact Factory)、工厂方法模式(Factory Methd)C、命令模式(a)D、责任链模式(Ch ofRpnsiilty)5、下面得类图表示得就是哪个设计模式?( B )A、代理模式(oxy) B、装饰模式(Decortor)、桥接模式(Bidge) D、观察者模式(Oserv)6、下面得类图表示得就是哪个模式?( B)A、代理模式(Po) 、外观模式(Fac
8、de)C、适配器模式(Adaptr) D、桥接模式(Bridge)7、下面得类图表明了哪个模式?( )A、责任链模式(hai o Resoibility)B、命令模式(an)C、备忘录模式 (Mement) D、工厂方法模式(actorhod)8、 下面得类图表示得就是哪个设计模式?(D)、模板方法模式(Tlat Mehd) B、命令模式(an)C、单例模式(Singleton) D、状态模式(Sat)9、 下面得类图表示得就是哪个设计模式?( C)、模板方法模式(Templte Mehod) B、命令模式 (man)C、单例模式(Snglton) D、状态模式(State)10、当我们想创建
9、一个具体得对象而又不希望指定具体得类时,可以使用()模式。A、创建型 B、结构型 C行为型、以上都可以1、设计模式得两大主题就是( d )、系统得维护与开发 B 对象组合与类得继承C、系统架构与系统开发、系统复用与系统扩展12、单例模式中,两个基本要点( b)与单子类自己提供单例 A 、构造函数私有 B、唯一实例、静态工厂方法 D、以上都不对3、下列模式中,属于行为模式得就是( b )A、工厂模式 B观察者 适配器 以上都就是14、对象适配器模式就是( )原则得典型应用。A、合成聚合复用原则 、里式代换原则、依赖倒转原则 D、迪米特法则15、静态工厂得核心角色就是(a)A、抽象产品B、具体产品
10、 C、静态工厂 D、消费者16、在观察者模式中,表述错误得就是( )A、观察者角色得更新就是被动得。B、被观察者可以通知观察者进行更新、观察者可以改变被观察者得状态,再由被观察者通知所有观察者依据被观察者得状态进行。D、以上表述全部错误。17、以下关于创建型模式说法正确得就是 . (A)A.创建型模式关注得就是对象得创建.创建型模式关注得就是功能得实现.创建型模式关注得就是组织类与对象得常用方法D。创建型模式关注得就是对象间得协作18、常用得描述设计模式得格式有(BCD) 。A.意图 B。动机C适用性 D。结构9、以下关于结构型模式说法正确得就是 (C)。A、结构型模式可以在不破坏类封装性得基
11、础上,实现新得功能.B、结构型模式主要用于创建一组对象。C、结构型模式可以创建一组类得统一访问接口D、结构型模式可以在不破坏类封装性得基础上,使得类可以同不曾估计到得系统进行交互。、以下属于结构型模式得就是(AB)。、代理(Proxy)模式 B、合成(poite)模式、命令(ma)模式 D、观察者(Obsevr)模式21、在不破坏类封装性得基础上,使得类可以同不曾估计到得系统进行交互。主要体现在(D)。A、适配器(Aapte)模式 B、合成(posie)模式C、原型(Prtpe)模式、桥接(rige)模式2、结构型模式中最体现扩展性得几种模式就是(BC)。A、适配器(Aapte)模式 B、合成
12、(osite)模式C、装饰(Decorat)模式D、桥接(Bridg)模式2、行为类模式使用( B )在类间分派行为。A、接口 B、继承机制C、对象组合 D、委托4、以下属于行为对象模式得就是 (CD ).A、模板(TepatMeto)模式、迭代器(Itetr)模式C、命令(n)模式、观察者(Obsrver)模式2、封装分布于多个类之间得行为得模式就是( ) 。A、观察者(Oberver)模式B、迭代器(Itertr)模式C、访问者(Visir)模式D、策略(rtegy)模式6、利用继承来提供DUK得行为,会导致下列那些缺点?(ABCD)A。代码在多个子类中重复 B、运行时得行为不容易改变C。
13、我们不能让鸭子跳舞D、改变会牵一发而动全身,造成其她鸭子不想要得改变简答题: 。什么就是设计模式?设计模式得目标就是什么?答: 设计模式通常就是对于某一类得软件设计问题得可重用得解决方案,将设计模式引入软件设计与开发过程,其目得就在于要充分利用已有得软件开发经验。2。设计模式具有哪三大特点?答: () 在特定得场景下有可重用性,对相同类型不同问题得环境,其解决方案都有效。(2)可传授性,即问题出现得机会很多,解决问题得方案相同,人们相对可以接受。() 有表示模式得名称.GOF 设计模式常用得有几种?GOF 设计模式按照模式得目得可分为哪三类?答: 行为型,结构型,创建型4画出抽象工厂方法类图(
14、这类题自己瞧书去。)5、针对接口编程,不针对实现编程得意义。答: 主题与观察者都就是用接口:观察者利用主题得接口向主题注册,而主题利用观察者接口通知观察者。这样可以让两者之间运作正常,又同时具有松耦合得优点.6、面向对象(O)得原则有:答: 1. 封装变化 2. 多用组合,少用继承3. 针对接口编程,不针对实现编程 4. 为交互对象之间得松耦合设计而努力5. 对扩展开放,对修改关闭 6. 依赖抽象,不要依赖具体类 7. 只与朋友交谈 8. 别找我,我会找您 9. 类应该只有一个改变得理由 、 耦合分为几种?()内容耦合 (2)公共耦合 (3) 外部耦合 (4) 控制耦合() 标记耦合 (6)数
15、据耦合 () 非直接耦合8、O模式分为几种,每种包含哪些模式?答:分为3种。创建型设计模式:简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式;结构型设计模式:适配器模式,桥接模式,组合模式,装饰模式,外观模式,轻量级模式,代理模式;行为性设计模式:责任链模式,命令模式,解释器模式,迭代器模式,中介者模式,备忘录模式,观察者模式,状态模式,策略者模式,模板方法模式,访问者模式。综合题 1、 某游戏公司现欲开发一款面向儿童得模拟游戏,该游戏主要模拟现实世界中各种鸭子得发声特征、飞行特征与外观特征.游戏需要模拟得鸭子种类及其特征如下表所示:为支持将来能够模拟更多种类鸭子得特征
16、,采用某设计模式设计得类图如下所示:其中,Duck为抽象类,描述了抽象得鸭子,而类Ruberuck、MallardDu、CottonDuc 与RedHeaDuk分别描述具体得鸭子种类,方法y()、uack()与displa()分别表示不同种类得鸭子都具有飞行特征、发声特征与外观特征;类FlyBehavio与Qacehavior为抽象类,分别用于表示抽象得飞行行为与发声行为;类FlyNoWay与FlWitWng分别描述不能飞行得行为与用翅膀飞行得行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声得行为、发出橡皮与空气摩擦声得行为与不发声得行为。C+代码#cudeostr
17、amuingnapace ;classFBehavio public :virtul vod y() 0;lss QuacBhaio ubic: iral viquack() =0;clas FlyWithWngs:public Flyeaiorubli: void fy() co 使用翅膀飞行 !” endl; ;clssFyNoWay:publFlyBeaiopbl: void fy() out ”不能飞行 ! ed; ;lass uck:pbc QuakBhaiorpubli: oid quk() ot 发出嘎嘎声!” edl;;clss Sa:public uacBehavopubli
18、c:vodquak() co 发出空气与橡皮摩擦声!” end;clas QuakNWay:puliuackBaviorpubli: vod quack () cout 不能发声! fy();vodquak() qacBehavio-qu(); ;vuaoid dilay()0;casserDuck: publc uck public:Rubuck()lyeavior =ne FlyNWay();qacBeavior =w Squea();RubberDc()if(!fBehavior)deet flyBehor;if(!quackBeaior) elee quackhavir;voddisp
19、la()/此处省略显示橡皮鸭得代码 * ;/其它代码省略请根据上述类图与代码,阐述采用该设计模式进行设计得优势?18、写一个单例模式得程序:static Insace it=null;ub tati Sigleon etInstnc()if(nstance=ull)synchoronied(Singn、lass)(instanceul)instenew Singleton();eurn instanc;19、写一个观察者模式得程序:public interfa AlmListener/定义观察者接口ubcvodalm();puli voidoundThela()Sstm、ut、println(“传感器检测到有人入侵)lssLighimplmets ArListenerpblic void alarm()stm、ot、println(“自动开灯”);cass Gates implemtAlamListnrpublic vid aar()ym、out、pritln(“ 自动关门”);