设计模式题库

上传人:靓*** 文档编号:142418738 上传时间:2022-08-25 格式:DOCX 页数:27 大小:356.82KB
返回 下载 相关 举报
设计模式题库_第1页
第1页 / 共27页
设计模式题库_第2页
第2页 / 共27页
设计模式题库_第3页
第3页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
设计模式题库1.设计模式的原理?(C)A.对实现编程B.面向对象编程i向接口编程D.向组合编程2以下对“升-闭原则的一些描述错误的是? (A) 丁-O, , * Q Q pA.开一闭原则与对可变性的封装原则“没有相似性. . q .0 。 q B.摆到T第统的可克元蠢 楼官封颗来网阿*原则 湘觎法卧 是其原则之一 a *T a* 0是其原则之L: E 工 .VD.思抽象层导出/举薪的具体类可以改支瓣的行汽*/:ago: ., .。o.。 X3.以下不属于创建型模式是? (A)A. PROXY (代理)B. BUILDER (生成器)& PROTOTYPE (原型)D SIXGLETON(单件)1以下不属于结构型模式是? (D)A. COMPOSITE (组合)B.: ADAPTER (适配器)C. FLYWEIGHT (享元)力.SINGLETON (单例)5:以下不属于行为型模式是? (D )A. COMMAND (命令) D 9JCB: STRATEGY(策略)C, MEMENTO (备忘录)D.BRIDGE (桥接)小23模式意图*/6,以下意图那个是用来描述ABSTRACT FACTORY (抽象工厂)? (A) A.提供一个创 建一系列相关或相互依赖对象的接口,而无需指定它们具体的类,B,定义一个用 于创建对象的接口,让子类决定实例化哪一个类。G将一个类的接口转换成客户 希望的另孤T接口pD.表示一个作用于某对象结构中的各元素的操作吸 A / Q D W 0 “ 7 w P fl/7 .以下意图那个是用来描述BUILDER(生成器)?(B) A.定义一个用于创建对象的 白 . . . * q。 夕 * 不 flB 。Q. 接口让子类决定实例化哪一个类B.将一个复杂对象的构建与它的表示分离;使 得同样的构建过程可以创建不同的表示.G保证一个类仅有一个实例,并提供一个访问它的全局访问点$J a 1 0 = 1. .4: /元素帕裳翁前提:卞危置售用于蜡元素的翩乘K。 ;C d .厂ft,U尸 I 11 法C.定义时象间的一种一对多的依赖关系,当一个对象的状态发生改变时所有 依赖于它的对象都得到通知并被自动更新.D.用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象上10.以下意图那个是用来描述SIXGLETOX(单件)? (B)A/魏一个类的接口转换成客户希望的另办一个榭L谈温便南瀛本山于郎不兼容 而不能一起工作的那些漆可以一起工作印碳证Tt衩有一个实外再糊L个窗同色的全局黯阳心C定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换9本模 式使得算法可独立于使用它的客户而变化a n- r a ,7D. q用一个中介对象来封装一系列的对象交互311 .以下意图那个是用来描述ADAPTER(适配器)?(A),06U ,A,将一个类的接口转换成客户希望的另外一个接口。本模式使得原本由于接口 不兼容 而不能一起工作的那些类可以一起工作8B,定义一个用干创建对象的接口,让子类决定实例化哪一个类G.表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素 的类的前提下定义作用于这些元素的新操作D.;将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化消 对请求排队或记录请求日志.以及支持可撤消的操作。12 .以下意图那个是用来描述BRIDGE(桥接)?(B)A.提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的 类乃B,将抽象部分与它的实现部分分离,使它们都可以独立地变化。C.将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同 , e O P . /,% o . / I p, * *SO . . 。 a a 的表示:D动态地给一个对象添加二些额外的职责誓 , 、 r 。”0不13 .以下意图那个是用来描述COMPOSITE(组创?娘 煎为其他对群藏L种代.理以控制对这个对象的访问B .运用共享技术有效地支持大量细粒度的对象。C.将对泉组合成树席结梅以隶示:“部分-整体”的层次绪构口将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同、 二 - . , , ,A.运用共享技术有效地支的表示a14 .以下意图那个是川来描述DECORATOR (装饰)? (D) 持大量细粒度的对象.九 八.个。 a - k PC.B.用原型实例指定创建对象的种类争并且通过拷贝这些原型创建好的港家.将抽象部分与它的实现部,分离,使它们都可以独立蟠依士D.动态地给一个对象添加一些额外的职责*4# 、 一15 .以下意图那个是用来描述FACADE(外观)?(A)A,为子系统中的T组接口提供一个一致的界面,本模式定义了一个高层接口.这个接口使得这一子系统更加容易使用。B.定义一个用干创建对象的接口,让子类决定实例化哪一个类.C保证一个类仅有一个实例,并提供一个访问它的全局访问点.D.在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存 这个状态令这样以后就可将该对象恢复到原先保存的状态,16 .以下意图那个是用来描述FLYWEIGHT惇葡?(B) A.梅抽象部分与它的实现 部分分离,使它何都可以独立地变化.B运用共享技术有效地支持大量细粒度的对象。C .动态地给一个对象添加一些额外的职责,D.用原型次例指定创建对象的种法 并且通过拷贝运鲸型创建新的对象Il以下意图邮不是用来描述于ro近玳幽KoA.用原型也例指:定雌对象的种籍 拒且通过拷贝这些原型创建新口勺对象 既 4 e %外保存这个状态。这样以后就可将该对象恢复到原先保存的状态.D;使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合 :. . 。 , 1“ ,% 。,。 , 关露&19 .以下意图那个是用来描述COMMAND (命令)? (A)A ,将一个请求封装为一个对象,.从而使你可用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤消的操作B;定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模 式使得算法可独 立于使用它的客户而变化QA为其他对象提供一种代理以控制时这个岫象的访词,D.保证一个类仅有一个实例,并提供一个访问它的全局访问点920 .以下意图那个是用来描述INTERPRETER(解释器)?A.将抽象部分与它的 实现部分分离,使它们都可以独立地变化.Bj给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器 : jB u . o 7 O O . 8 、 。 , ra i* o。使用该表示来解释语言中的句子. 0 .小衣蒋一小昊杂对象的梅囊与例幡冢分离,使得同样的糊孱过程可时建不同 的表示。D.为其他对象提供一种代理以控制对这个对象的访问。21以?下意图那个是用来描述ITERATOR(迭代器)?A.使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合 关系邛B.用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象& C.提供一种方法顺序访同一个聚合对象中各个元素,而又不需暴露该对象的 r 、 r. -w 二 b r -w r 、 9 9 *。,9 内部表示。D.运用共享战素敏他支捶大量细粒度的对象.22 .趺下圈那个是用来描述MEDIATOR (中介者)?A.提供一种方法哂访 问一个聚合对象中各个元素,而乂不需暴露该对象的内部表示* B.将抽象部分与 它的实现部分分离电使它们都可以独立地变化a当宪义一个用于创建对象的揍口,让子类 一例传哪T粪. 以用一个中介对象来封装一系列的对象交互*23 .以下意图那个是用来描述MEMENTO(备忘录)?(A) A.在不破坏封装性的前提 下,捕获一个对象的内部状态并在该对象之外保存这个状态.这样以后就可将 该对象恢复到原先保存的状态。B.保证一个类仅有一个实例,并提供一个访问它的全局访问点6C .将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可撤消的操作D,提供一种方法顺序访问一个聚合对象中各个元素,而乂不需暴露该对象的内24 .以下意图那个是用来描述OBSERVER(观察者)?(B) A.将抽象部分与它的实 现部分分离,使它们都可以独立地变化。B.定义对象间的一种一对多的依赖关系,当T对象的状态发生改变时,所有 依附厚的曲家都得到通知并被白初更新.。用原型蝴I指触灌对象的种姜.并且通过拷贝这粤原型倒睇的对象。D. 4一4。少、,。;七。D.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换27 .以下意图那个是用来描述TEMPLATE METHOD (模板方法)?(A)工定义一个操 作中的算法的骨架而将一些步骤延迟到子类中,B.为其他对象提供一种代及以控制对这个对象的访问C将抽象部分与它的实现部分分离,使它们都可以独立地变化。D.使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合 关系中28 .以下意图那个是用来描述VISITOR(访问者)?融兔义对父间的一种一对象的礴关葩当一布戴泵的状添雌改蝴,MW 依赖于它的对象都得到通知并被自动更新.B.表示一个作用于某对象结构中的各元素的操作a二在不破坏封装性的前提下,捕获一个对象的内部状态,.并在该对象之外保存 、 , * C. , . . . *J o * a*这个状态。这样以后就可将该对象恢复到原先保存的状态.D.用原理刎指定创出掾的朴英,并且通过拷贝场翻型创建新的对家,/豕23模式的结构图木/29 .下图结构图描述的是那种 模式? (A)| MHb-j Ckf -I C: OMT* -iwtwwr. ,sA. ABSTRACT FACTORY(抽象工厂)B. FACTORY METHOD (工厂方法)心81;工111?(生 成器)D. BRIDGE (桥接)30.下图结构图描述的是那种 模式?(B)A. STRATEGY (策略)B. BUILDER (生成器)C. FACADE (外观)D. FROXY (代理)31.下图结构图描述的是那种 模式?(C)A. ABSTRACT FACTORY (抽象工厂j B. STRATEGY (策略)C. FACTORY METHOD (工厂方法)D. COMPOSITE (组合) .,。32.下图结构图描述的是那种 模式?(C)A. STRATEGY (策略)B. OBSERVER (观察者)C. ADAPTERGBl?:;)D. BUILDER (生成器)33.下图结构图描述的越那种模式A. ADAPTER(适配器)B. MEMENTO (备忘录)C. PROXY (代理)D. ABSTRACT FACTORY(抽象工厂)3塞下图结构图描述的是那种模式?(D) 0.q0 M11* mm / r%A. STRATEGY (策略)B. PROXY (代理)C. OBSERVER (观察者)D. STRATEGY (策略)33.下图结构图描述的是那种模式? (D)丽EA. MEDIATOR (中介者)B.PROXY (代理)C. COMPOSITE (组合)D. STRATEGY (策略)G23模式的适用性“ ,-J#“1、e34.差于模式适用性,在以下情况不适合使用Abstract Factory模式? (D)A.一 个系统要独立于它的产品的创建、组合和表示时B. 一个系统要由多个产品系列中的一个来配置时。C.当你要强调一系列相关的产品对象的设制似便进行联合使用时.D.当一个 类希望由它的子类来指定它所创建的对象的时候.35.关于模式适用性,在以下情况不适合使用FACTORY METHOD模式? (C) A.当 T类不知道它所必须创建的对象的类的时候。B.当一个类希望由它的子类来指定它所创建的对象的时候QC.当你提供一个产品类库,而只想显示它们的接口而不是实现时争D.当类将 创建对象的职责委托给多个帮助子类中的某一个,.并且你希望将哪一个帮助子类 D a O 04fl D 0.).e ft 是代理者这一信息局部化的时候-.36 .关于模式适用性,在以下情况可以使用builder模式?(B)A.当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时 B.当创建复杂对象的算法应该独立F该对象的组成部分以及它们的装配方式时.C.当构造过程必须允许被构造的对象有不同的表示时口D. 一个对象的行为取快于它的状态,并且它必须在运行时刻根据状态改变它的行知37 .美手模式适用性雪在以下情况不适合使用Factory Method模式? (A) m ri . 一.。 一 a 。.。 c B.uC n n ir A. 一次性实现一个算法的不变的部分”并将可变的行为留给子类来实现争 j 4: * .* n ft X* , ”当一个类希望由它的子类来指定它所创建的对象的时候, % DO,0,U当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一 。 % 。 , ; 。 。 % ,个帮助子类是代理者这一信息局部化的时候。D ,当一个类不知道它所必须创建的对象的类的时候.38 .关于模式适用性,在以下情况不适合使用PROTOTYPE模式? (B)A.当要实例化 的类是在运行时刻指定时,例如,通过动态装载B.当你要强调一系列相关的产品对象的设计以便进行联合使用时a为了避免创建一个与产品类层次平行的工厂类层次时D.当一个类的实例只能有儿个不同状态组合中的一种时39 .关于模式适用性,在以下情况适合使用Singleton模式? (C)A,雪一个类不知道它所必须创建的对象的类的时候 p。 。中 , r 。 a,.B ,雪一个类的实例只能有几个不同状态组合中的一种时C.当这个唯F实例应该是通过子类化可扩展的,并且客户应该无需更改代码就 .。.0a.,*,.口0.* ,能使用一个扩展的实例时一 r 4. .a.J . F * n D.当一个类希望由它的子类来指定它所创建的对象的时候40 .关于模式适用性,在以下情况不适合使用Adapter(适配器)模式?(D) A.你想 使用一个已健存在的类,而它的接口不符合你的需求。B.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类 即那些接口可晶不触轴的弟赞同工作,b.你想使用一些m经存在的子类,但是不可能对每一个都进行子类化以匹配它 们的接口冷对象适配器可以适配它的父类接口意D.如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对 . p a% , Q . o+。 , 丁?.一手 , 丁望在抽象和它的实现部分之间有一个固定的绑定关系,例如这种情况可能是因为, 在程序运行时刻实现部分应可以被选择或者切换.B0类的轴象以及它的实现都应读可以通过生成子类的方法加以扩充.这时B r i d g e模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进 行扩充。C.对一个抽象的实现部分的修改应对客户不产生影响,,即客户的代码不 必重新编译 D.客户程序与抽象类的实现部分之间存在着很大的依赖性.42 .关于模式适用性,在以下情况不适合使用COMPOSITE(组合)模式? (B) A.你想 . * bTC . b . . Q L . . 。L . & D b * Q fl CT4 . . KT 9使用一个已存在的类,而它的接口不特合你的需求.R你想表示对象的部分-整体层次结构也 0 岁.C.雪一小类的实例只能有几个不同状态组合中的一种时D. 一不对蠹的行的树fe于它的状态,并且去螭融运行时刻根据叔臧委宜 to Q CP,、而 S tr a c , . O 9f.4. , I 他宜为4位鼾窗前用隹在以下帆环适合使用DECORATOR (装拗模邢A在 不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责& B.处理那 些可以撤消的职责QC .客户程序与抽象类的实现部分之间存在着很大的依赖性。当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数日呈爆炸性增长丁另一 种情况可能是因为类定义被隐藏,或类定义不能用于生成子类,、 - q . 4 a. o 一 , a ,在以下情况不适合使用应YWEIGHT(享兀)模式?44.关于模式适用性,工 T应用程序使用了大量的对象? 0 *b a. . r L TT . . vTor .B.竞全由于使用大量的对象,造成很大的存储开销。C对象的大多数状态都可变为外部状态9D.你想使用一个已经存在的类,而它的接不符合你的需求 9、。:a tT o 9。4 不, 4%关于模式适用性,番以1蝌不适合使用例丽D(命令)於?虬解a c * a o - . b . 0 .Lb. 八?*. 、J k)函数表函待胡有渊域作以舞数化某对象,使用过程酒窗中的国询七区q 1 b a:c 达这种参数化机制B, Java语言中的:AWT的事件处理C.在需要用比较通用和复杂的对象指针代替简单的指针的时候D. 一个系统需要支持交易(transaction). 一个交易结构封装了一组数据更新 r ,o . a V * a a .、一 , I 当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变。C.各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复Q首先识别 现有代码中的不同之处,并且将不同之处分离为新的操作。最后,用一 个调用这些新的操作的模板方法来替换这些不同的代吗QD.控制子类扩展,模板方法只在特定点调用“ h。k”操作(参见效果一 节),这样就只允许在这些点进行扩展。A模式多选题*/51.以下有关ABSTRACT FACTORY (抽象工J )这种模式的一些优点和缺点描述正A.它分离了具体的类B/它螭名于交操我品系列 :户, , 匕它有利于产品的一致性D.难以支持新种类的产品52,当应用Factory Method模式时要考虑下面哪些问题?(% B,RD) A.主要有 两种不同的情况B.参数化F方法C解定嫌宫的焚他和何1SD.使用模板以避免创建子类53,下面列出P r 6 t o p 6模式的一些优点正确的是? (A, B, C), A,运行 时刻增加和删除产品B.改变值以指定新对象C.减少子类的构造D.用类动态配置应用54,使用P r o t o t Fp e原型模式时以下属于要考虑的问题有那些?(ABC)A使用一个原型管理器B.实现克隆操作G.初始化克隆对象D,用类动态配置应用55,以下属于5 i n g 1 e t o n模式的优点是? (A, B, C, D) A.对唯一实例|的 受控访问B.允许对操作和表示的精化, Oc.允许可变数H的实例D.比类操作更灵活56,关于模式适用性,在以下情况适合使用FLYWEIGHT C享元)模式?(A, B, C)-J。 6 F - r; -,0:.A. 一个应用程序使用了大量的对象aB.完全由于使用大量的对象,造成很大的存储开销。C对象的大多数状态都可变为外部状态.D.你想使用一个已经存在的类,.而它的接口不符合你的需求7. B r i d g e模式有以下哪些优点? (A,B,D)A.分离接口及其实现部分B.提高可扩充性C,改变值以指定新对象D实现细节对客户透明8.使用B r i d g e模式时需要注意以下哪些问,题?(A, B, C) Implementor、(ffi n a o w m p定义实现类的接口,;该接口不一定要与A bt. r a c、广 ,t ion的接口完全一莪事实上这两个;接口可以完全不同胁f般来讲,I m: p 1 e m e n t err接口仅提供基本操 o- 08。.。. L : . 作,而 A b s t r a c t i o n定义了基于这些基本操作的较高层次的操作。A.仅有一个 ImplementorB.创建正确的工加p 1 e mC .共摹J n p l e m e n t o大对象D.你想使用一个已经存在脚患.僦雌口那潸昔你的需求59, 我们在实现C o mpo s i t e模式时需要考虑以下几个问题? (A,B, &D) .歹 .9 g . 1 0 * 0人建式的父邮种引用B,共享组件G最大化Component接口D;声明管理子部件的操作 . ; 9 。 .60, D e c o r a t o r模式主要两个优点有以下那些? (A, B)A J匕静态继承更灵活B-避免在层次结构高层的类有太多的特征G有许多小对象,很容易对它们进行定制,但是很难学习这些系统,排错也很 困难.D, Decoraitcr 与它的 C o m p o n e n t 不一样,D e c ;0 t a t : t是一 个透明的包装。61, D e t 0 r a t o r模式主要两个缺点主要有以下那些? 勒A,比静态继承更灵活B,避免在层次结构高层的类有太多的特征G有许多小对象,很容易对它们进行定制,但是很难学习这些系统,排错也很 . -e -a ! o b,oflo. r致性B省略抽象的Deco r:; a t o r类C,保持C。m p o n e n t类的简单性D,改变对象外壳与改变对象内核6军关手箧式适用怅 在以下情况搭行使用CHAIN OF RESFONSIBIUTY (职责链) 模式? C,D)4有玄不同对象可以处所4W求.哪个对题趣蕊语隶运行时刻自动确 . J 中 , $ b 、 一 ,0 b b .* q .更e其 在融5用比较通用和复条的对象指针代瞽悔阜的拍针的时候a你翼在不明确指激敏者的情猊卞;向酣曦碌中的一个提交if诲虬D,可处理一个请求的对象集合应被动态指定.64,关于模式适用性,在以下情况适合使用COMMAND (命令)模式?(A, B, D) Q抽象 t r , k)函数表出待执行的动作以参数化某对象,使用过程语言中的回调(c 达这种参数化机制;D. Java语言中的:AWT的事件处理C.在需要用比较通用和复杂的对象指针代替简单的指针的时候D. 一个系统需要支持交易(transdcticm) .一个交易结构封装了一组数据更新 命令.65,下面哪些是访问者模式的优缺点?& B, D)A,访问者模式使得易于增加新的操作B,场同意集中相关的麻布咖T品美能稀C增加新的C o n c r e t e E X & m e n : t类很困难0D,通过类层次进行访问66,下面哪些是S t r a t e g y模式的优缺点? (A, B, C) A相关算法系列Qffl、:o ,丁 叽. O: L中 B,一不替代继承的方法 ? 、: 丁 C,消除了T鲤舞f隋句D,改变对象外壳与改变对象内核67, S t a t:e模式有下面那些些效果?(A, B, D) A,它将与特定状态相关的行为局部化,并且将不同状态的行为分割开来B,它使得状态转换显式化C,通过类层次进行访问D;State对象可被共享68,0 b s: r v e r模式允许你独立的改变目标和观察者.你可以单独复用目 标对象而无需同时复用其观察者,反之亦然它也使你可以在不改动目标和莪他的期熊者的而提。 七。下增加观察者。下面是观察者模式其它F些优缺点”B, C, D). 9 . 。, 么它使得状态转换显式化B,支持广播通信却意外的更新D,目标和观察者间的抽象耦合69,备忘录模式有以下哪些效果?(A,BC,D) A,保持封装边界B;它简化了原发器C,使用备忘录可能代价很高D,维护备忘录的潜在代价70,中介者模式有以下那些优点和缺点? q。 。r 0 9 9 9 。乐中介者模式有以下优点和缺点: 。a.gat :;。.o B,它简化了对象协议 , ; o o JD.G它对对象如何褥作进行了抽象D,它使控制集中化9。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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