设计模式题库

上传人:fgh****35 文档编号:172624832 上传时间:2022-12-05 格式:DOC 页数:6 大小:66KB
返回 下载 相关 举报
设计模式题库_第1页
第1页 / 共6页
设计模式题库_第2页
第2页 / 共6页
设计模式题库_第3页
第3页 / 共6页
点击查看更多>>
资源描述
1.1(D)以用户的观点表示系统的目标,它是所有视图的核心,该视图描述系统的需求。A 结构视图B 行为视图C 实现视图D 用户视图E 环境视图F 物理视图G逻辑视图1.2类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同(ABC)的对象集合的总称。A 属性B 操作 C 关系 D 约束 E 继承 F 多态 G 封装2.1面向对象设计原则首先都是(B)的原则,遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。 A 重载B 复用C 面向对象D 封装E 继承F 多态G抽象2.2 以下说法错误的有(BDH)A对于面向对象的软件系统设计来说,在支持可维护性的同时,需要提高系统的可复用性。B迪米特法则要求一个软件实体应当尽可能多的与其他实体发生相互作用。C单一职责原则要求在软件系统中,一个类只负责一个功能领域中的相应职责。D开闭原则要求一个软件实体应当对扩展开放,对修改关闭,但是为了增强系统功能,可以随便的修改源代码。E里氏代换原则可以通俗表述为在软件中如果能够使用基类对象,那么一定能够使用其子类对象。F依赖倒转原则要求抽象不应该依赖于细节,细节应该依赖于抽象;要针对接口编程,不要针对实现编程。G接口隔离原则要求客户端不应该依赖那些它不需要的接口,即将一些大的接口细化成一些小的接口供客户端使用。H合成复用原则要求复用时尽量使用继承,而不使用对象组合。3.1 结构型模式分为类模式和对象模式,以下可以是类模式的是(A)A 适配器模式B 桥接模式C 组合模式D 装饰模式E 外观模式F 享元模式G 代理模式3.2设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括以下四个方面(ABDE)A 模式名称 B 问题 C 目的 D 解决方案 E 效果 F 实例代码 G 相关设计模式4.1 以下关于简单工厂模式叙述错误的是(A)A 它属于GoF23种设计模式B 它是最简单的设计模式之一C 它是学习其他创建型模式的基础D 它只需要记住一个简单的参数即可获得所需对象的实例E 它类中的方法通常为静态方法F 它返回的类都有一个公共的父类和公共的方法4.2 简单工厂模式包含三个角色是(ABC)A 工厂角色B 抽象产品口C 具体产品角色D 抽象接口角色E 生产者角色F 用户角色G 使用者角色5.1 Java中的 (A)是指在程序运行时获取已知名称的类或已有对象的相关信息的一种机制,包括类的方法、属性、超类等信息,还包括实例的创建和实例类型的判断等A 反射B 继承 C 多态 D 组合 E 聚合 F 抽象 G 抽象5.2 工厂方法模式与简单工厂模式相比的优点有(ABCD)A 工厂方法模式很好的符合开闭原则B 工厂方法类模式中工厂类职责变轻,业务逻辑相对简单C 具体产品与工厂类之间的耦合降低D工厂方法模式是简单工厂模式的进一步抽象和推广E Factory类内的方法常使用静态方法F 只提供一个工厂类G不需要考虑对象的具体创建细节6.1 现有5个产品族,分布于3各不同的产品等级结构,只要指明一个产品所处的产品族以及它所在的等级结构,就可以唯一地确认这个产品。那么使用抽象工厂方法模式只需要提供( A)个具体工厂即可。A 5 B 3 C 8 D 15 E 1 F 30G 46.2 抽象工厂模式的优点有(A)A 抽象工厂模式隔离了具体类的生成,使得客户并不需要知道什么被创建。B 所有的具体工厂都实现了抽象工厂中定义的那些公共接口,因此只需改变具体工厂的实例,就可以在某种程度上改变整个软件系统的行为。C 应用抽象工厂模式可以实现高内聚低耦合的设计目的,因此抽象工厂模式得到了广泛的应用。D 增加新的具体工厂和产品族很方便,无须修改已有系统,符合“开闭原则”。E 添加新的产品对象时,难以扩展抽象工厂来生产新种类的产品F 开闭原则的倾斜性(增加新的工厂和产品族容易,增加新的产品等级结构麻烦)7.1 对于建造一辆汽车,使用建造者模式中ConcreteBulider(具体建造者)需要做的是(A)A 提供汽车的各个部件的构造和装配方法B 建造汽车C 建造汽车部件并且组合成汽车D 指挥汽车建造E 定义抽象接口7.2 建造者模式的优点有哪些(ABC)A分步骤构建一个复杂的对象B应对“复杂对象各个部分”的频繁需求变动C用户使用不同的具体建造者即可得到不同的产品对象D如果产品的内部变化复杂,可能会导致需要定义很多具体建造者类来实现这种变化,导致系统变得很庞大E如果产品之间的差异性很大,则不适合使用建造者模式,因此其使用范围受到一定的限制8.1 对于原型模式中,Java语言提供的clone()方法将对象复制了一份并返回给调用者。一般而言,对于clone()方法描述错误的是(A)A 对任何的对象x,都有x.clone() =x,即克隆对象与原对象是同一个对象B 对任何的对象x,都有x.clone().getClass()=x.getClass(),即克隆对象与原对象的类型一样C 如果对象x的equals()方法定义恰当,那么x.clone().equals(x)应该成立D 该clone()方法是深克隆8.2 对于原型模式的优点有(ABCD)A当创建新的对象实例较为复杂时,使用原型模式可以简化对象的创建过程,通过一个已有实例可以提高新实例的创建效率。B 可以动态增加或减少产品类。 C 原型模式提供了简化的创建结构。 D 可以使用深克隆的方式保存对象的状态。E 实现深克隆时需要编写较为复杂的代码。F 需要为每一个类配备一个克隆方法9.1 单例模式的最主要的思想是(A)A 构造方法私有化 B 使用默认构造方C 构造方法静态化D 类私有化E 类不允许被继承F 类的方法不允许被访问9.2单例模式的要点(ABC)A某个类只能有一个实例B必须自行创建这个实例C必须自行向整个系统提供这个实例D类的方法不能被访问E实例的创建个数不受限制F 实例的创建者不受限制10.1在笔记本电脑用电的例子中,属于适配器的是(A)A 充电器 B 插座 C 笔记本 D 笔记本电源插孔10.2 适配器模式的优点(ABC)A将目标类和适配者类解耦B增加了类的透明性和复用性C灵活性和扩展性都非常好,通过使用配置文件,可以很方便地更换适配器D其使用有一定的局限性,不能将一个适配者类和它的子类都适配到目标接口。E要想置换适配者类的方法不容易11.1桥接模式将继承关系转换为(A)关系,从而降低了类与类之间的耦合,减少了代码编写量。A 关联B 多态 C 实现 D 重构 E 抽象 11.2桥接模式的优点(ABC)A分离抽象接口及其实现部分。 B桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统。 C 实现细节对客户透明,可以对用户隐藏实现细节。 D桥接模式的引入会增加系统的理解与设计难度E桥接模式要求正确识别出系统中两个独立变化的维度,因此其使用范围具有一定的局限性。 12.1组合模式描述了如何将容器对象和叶子对象进行(A)组合,使得用户在使用时无须对它们进行区分,可以一致地对待容器对象和叶子对象A 递归 B 重构 C 并列 D 内置 E 关联12.2组合模式包含角色有(ABCD)A抽象构件B叶子构件C容器构件D客户类E树根构F枝干构件13.1 以下不适合使用装饰模式的是(A)A 装饰某个对象时需要修改该类的对象B在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责C 需要动态地给一个对象增加功能,这些功能也可以动态地被撤销D当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时E 只需要对某个对象进行外观修饰而不需要修改其内在属性时13.2 装饰模式的优点有哪些(ABC)A 可以通过一种动态的方式来扩展一个对象的功能,通过配置文件可以在运行时选择不同的装饰器,从而实现不同的行为B可以使用多个具体装饰类来装饰同一对象,得到功能更为强大的对象C具体构件类与具体装饰类可以独立变化,用户可以根据需要增加新的具体构件类和具体装饰类,在使用时再对其进行组合,原有代码无须改变,符合“开闭原则”D使用装饰模式进行系统设计时将产生很多小对象E装饰模式比继承更加易于出错,排错也很困难,对于多次装饰的对象,调试时寻找错误可能需要逐级排查,较为烦琐。14.1外观模式指的是外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组(A)提供一个一致的界面。A 接口 B 按钮 C 函数调用D 系统调用 E 连接14.2 外观模式有哪些优点(ABCD)A对客户屏蔽子系统组件,减少了客户处理的对象数目并使得子系统使用起来更加容易B通过引入外观模式,客户代码将变得很简单,与之关联的对象也很少C实现了子系统与客户之间的松耦合关系,这使得子系统的组件变化不会影响到调用它的客户类,只需要调整外观类即可D降低了大型软件系统中的编译依赖性,并简化了系统在不同平台之间的移植过程,因为编译一个子系统一般不需要编译所有其他的子系统E 不能很好地限制客户使用子系统类F 增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开闭原则”15.1 (A)正是为解决这一类问题而诞生的。享元模式通过共享技术实现相同或相似对象的重用。 A享元模式 B外观模式 C 代理模式 D 组合模式 E 命令模式15.2 享元模式的优点有哪些(AB)A享元模式的优点在于它可以极大减少内存中对象的数量,使得相同对象或相似对象在内存中只保存一份B享元模式的外部状态相对独立,而且不会影响其内部状态,从而使得享元对象可以在不同的环境中被共享C享元模式运用共享技术有效地支持大量细粒度对象的复用。D享元模式使得系统更加复杂,需要分离出内部状态和外部状态,这使得程序的逻辑复杂化。E为了使对象可以共享,享元模式需要将享元对象的状态外部化,而读取外部状态使得运行时间变长。16.1(A)可以在客户端和目标对象之间起到中介的作用。A代理对象 B 被代理对象 C 使用代理的对象 D 中间对象 E 中介对象16.2 代理模式包含哪些角色(ABC)A抽象主题角色B代理主题角色C真实主题角色D被代理主题角色E 中介主题角色F 中间主题角色17.1 在职责链模式里,很多对象由每一个对象对其(A)对象的引用而连接起来形成一条链。A 下家 B上家 C 周围 D 所有 E 自身17.2 职责链可以是(ABC),沿着链来传递请求。A一条直线B一个环C一个树形结构D网状18.1在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用(A)来进行设计。A 命令模式 B 代理模式 C 桥接模式 D 适配者模式 E解释器模式18.2 命令模式的优点有哪些(ABCD)A降低系统的耦合度。B新的命令可以很容易地加入到系统中。C可以比较容易地设计一个命令队列和宏命令(组合命令)。D可以方便地实现对请求的Undo和Redo。E使用命令模式可能会导致某些系统有过多的具体命令类。19.1 (A)描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发的编译器中。A解释器模式B命令模式C 代理模式D 迭代器模式E 适配器模式19.2 以下说法正确的是(ABC)A抽象语法树描述了如何构成一个复杂的句子,通过对抽象语法树的分析,可以识别出语言中的终结符和非终结符类。 B在解释器模式中,每一种终结符和非终结符都有一个具体类与之对应,正因为使用类来表示每一个语法规则,使得系统具有较好的扩展性和灵活性。 C 解释器模式的优点包括易于改变和扩展文法、易于实现文法和增加了新的解释表达式的方式。D 解释器模式的执行效率很高E 解释器的应用场景很广泛20.1 在迭代器模式中,提供一个(A)的迭代器来对聚合对象进行访问和遍历。A 外部 B 内部 C 中间 D 以上三者都可以20.2 迭代器模式的优势有哪些(ABCD)A它支持以不同的方式遍历一个聚合对象。B 迭代器简化了聚合类。C在同一个聚合上可以有多个遍历。D在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码,满足“开闭原则”的要求E 增加新的聚合类需要对应增加新的迭代器类F 类的个数成对增加,这在一定程度上增加了系统的复杂性21.1 以下使用中介者模式的是(A)AQQ群聊B QQ分组C QQ视频DQQ一对一聊天21.2 中介者模式是为了解决在用户与用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致系统出现如下问题(ABC)A系统结构复杂B对象可重用性差C 系统扩展性低D 系统易于维护22.1一种类似“后悔药”的机制是(A)A备忘录模式B观察者模式C终结者模式D后悔模式22.2备忘录模式包含下列哪些角色(ABC)A原发器B备忘录C负责人D代理23.1以下哪一个模式是定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新(A)A观察者模式B代理模式C外观模式D备忘录模式23.2观察者模式有哪些优点(AB)A实现表示层和数据逻辑层的分离B支持广播通信C支持以不同的方式遍历一个聚合对象D简化了对象之间的交互,将各同事解耦24.1以下哪一个模式是允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类(A)A状态模式B享元模式C职责链模式D命令模式24.2以下模式哪些是对象行为模式(AB)A状态模式B观察者模式C模版方法模式D解释器模式25.1以下哪一个模式是对算法的封装,它把算法的责任和算法本身分割开,委派给不同的对象管理(A)A策略模式B模版方法模式C解释器模式D迭代器模式25.2策略模式有以下哪几种角色(ABC)A环境类B抽象策略类C具体策略类D抽象命令类26.1模板方法模式是基于(A)的代码复用基本技术A继承B实现C分装D接口26.2模块方法具体包含哪些角色(AB)A抽象类B具体子类C环境类D命令类27.1以下哪一个模式是表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作(A)A访问者模式B桥接模式C原型模式D单例模式27.2访问者模式包括的两个层次结构,分别是(AB)A访问者层次结构B 元素层次结构C对象层结构D类层结构
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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