设计模式考点.docx
《设计模式考点.docx》由会员分享,可在线阅读,更多相关《设计模式考点.docx(16页珍藏版)》请在三一办公上搜索。
1、精选优质文档-倾情为你奉上设计模式题库-自编版选择题1、设计模式具有( )的优点。A、提高系统性能 B、降低软件规模和复杂度C、减少代码开发工作量 D、提升软件设计的质量2、 在面向对象软件的开发中,采用设计模式( )。 A、 可以减少在设计和过程中需要创建的实例对象的数量B、 可以保证程序的运行速度达到最优值C、 可以复用相似问题的相同解决方案D、 允许在非面向对象程序设计语言中使用面向对象的概念3、 ( )都是行为型设计模式。A、 组合模式、适配者模式和代理模式B、 观察者模式、职责链模式和策略模式C、 原型模式、建造者模式和单例模式D、 迭代器模式、命令模式和桥接模式4.开闭原则是面向对
2、象的可复用设计的基石,开闭原则是指一个软件实体应当对( )开放,对( )关闭;里氏代换原则是指任何( )可以出现的地方,( )一定可以出现;依赖倒置原则就是依赖于( ),而不要依赖于( ),或者说要针对接口编程,不要针对实现编程。A、修改 B、扩展 C、分析 D、设计A、修改 B、扩展 C、分析 D、设计A、变量 B、常量 C、基类对象 D、子类对象A、变量 B、常量 C、基类对象 D、子类对象A、程序设计语言 B、建模语言 C、实现 D、抽象A、程序设计语言 B、建模语言 C、实现 D、抽象5.关于单一责原则,以下叙述错误的是( )。A、 一个雷只负责一个功能领域中的相应职责。B、 就一个类
3、而言,应该有且仅有一个引起它变化的原因。C、 一个类承担的职责越多,越容易复用,被复用的可能性越大。D、 当一个类承担的职责过多时,需要将职责进行分离,将不同的职责封装 在不同的类中。6.以下关于面向对象设计的的叙述中,错误的是( )。A、 高层模块不应该依赖于低层模块。B、 抽象不应该依赖于细节。C、 细节可以依赖于抽象。D、 高层模块无法不依赖于低层模块。7.在系统设计中应用迪米特法则,以下叙述有误的是( )。A、 在类的划上,一个尽量创建松耦合的类,类的耦合度越低,复用越容易。B、 如果两个类之间不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。C、 在对其他类的引用上,一个对象
4、对其他对象的引用应该降到最低。D、 在类的设计上,只要有可能,一个类型应该尽量设计成抽象类或接口,且成员变量和成员函数的访问权限最好设置为公开的。8.在简单工厂模式中,如果需要增加新的具体产品,通常需要修改( )的源代码。A、抽象产品类 B、其他具体产品类 C、工厂类 D、客户类9.以下关于简单工厂模式叙述错误的是( )。A、简单工厂模式可以根据参数的不同返回不同的产品类的实例。B、简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。C、简单工厂模式可以减少系统中的类的个数,简化系统的设计,使得系统更易于理解。D、系统的扩展困难,在添加新的产品时需要修好工厂的业
5、务逻辑,违背了开闭原则。10.以下代码使用了( )模式。abstract class Product专心-专注-专业public abstract void Process();class ConcreateProductB:ProductPublic override void Process().Class FactoryPublic static Product CreateProduct(char type)Switch(type)Case A:Return new ConcreateProductA(); break;Case B:Return new ConcreateProduc
6、tB();break;A、 Simple Factory B、Factory Method B、 C、Abstract Factory D、未使用任何设计模式11.不同品牌的手机应该由不同是公司所造,例如Motorola公司生产Motorola手机,Nokia公司生产Nokia手机。该场景蕴含了( )模式。A、Simple Factory B、Factory Method C、Abstract Factory D、Builder12.以下关于工厂方法模式的叙述错误的是( )。A、 在工厂方法模式中引入了抽象工厂类,二具体产品的场景延迟到具体工厂中实现B、 使用工厂方法模式添加新的产品对象很容易
7、,无须对原有系统进行修改,符合开闭原则C、 工厂方法模式存在的问题是在添加新产品时,需要编写新的具体产品类,而且提供与之对应的具体工厂类,随着类个数的增加,会给系统带来一些额外开销。D、 工厂方法模式是所有形式的工厂模式中的最为抽象和最具一般性的一种形态,工厂方法模式退化后可以演变成抽象工厂模式。13.某银行系统采用工厂模式描述其不同账户之间的关系,设计出的类图如图4-7所示。其中,与工厂模式中的“Creator”角色相对应的类是();与“Product”角色相对应的类是( )。A、BankB、AccountC、CheckingD、SavingsA、BankB、AccountC、Checkin
8、gD、Savings14、关于C#中的MemberwiseClone()方法,以下叙述有误的是( )。A、对于对象x,都有x.MemberwiseClone()=xB、对于对象x,都有x.MemberwiseClone().GetType()=x.GetType()C、对于对象x的成员对象Member,都有x.MemberwiseClone().Menber=x.MemberD、对于对象x的成员对象Member,都有x.MemberwiseClone().Member.GetType()=x.Member.GetType.15.以下关于原型模式叙述错误的是( )。A、 原型模式通过给出一个原型
9、对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象B、 浅克隆仅仅复制所考虑的对象,而不复制它所引用的对象,也就是其中的成员对象并不复制C、 在原型模式中实现深克隆时通常需要编写较为复杂的代码D、 在原型模式中不需要为每一个类配备一个克隆方法,因此对于原型模式的扩展很灵活,对于已有类的改造也较为容易16.某公司要开发一个即时聊天软件,用户在聊天过程中可以与多位好友同时聊天,在私聊时将产生多个聊天窗口,为了提高聊天窗口的创建效率,要去根据第一个窗口快速创建其他窗口。针对这种需求,采用()进行设计最为合适。A、 享元模式B、单例模式C、原型模式D、组合模式17.在(
10、)时可使用单例模式。A、 隔离菜单项对象的创建和使用B、 防止一个资源管理器窗口被实例化多次C、 使用一个已有的查找算法而不想修改既有代码D、 不能创建子类,需要扩展一个数据过滤器18.以下关于单例模式的描述,正确的是()。A、 它描述了只有一个方法的类的集合B、 它能够保证一个类只产生一个唯一的实例C、 它描述了只有一个属性的类的集合D、 它能够保证一个类的方法只能被一个唯一的类调用19.以下()不是单例模式的要点。A、 某个类只能有一个实例B、 单例类不能被继承C、 必须自行创建单个实例D、 必须自行向整个系统提供单个实例20、()将一个类的接口转换成客户希望的另外一个接口,使得原本由于接
11、口不兼容而不能一起工作的那些类可以一起工作。A、命令(Command)模式B、适配器(Adapter)模式C、策略(Strategy)模式D、单例(Simple)模式21.以下关于适配器模式的叙述错误的是()。A、 适配器模式将一个接口装换成客户希望的另一个接口,使得原本由于接口不兼容那些类可以一起工作。B、 在类适配器中,Adapter和Adaptee是继承关系,而在对象适配器中,Adapter和Adaptee是关联关系。C、 类适配器比对象适配器更加灵活,在C#语言中可以通过类适配器一次视频多个适配者类。D、 适配器可以在不修改原来的适配者接口Adaptee的情况下将一个类的接口和另一个类
12、的接口匹配起来。22.现需要开发一个文件转换软件,将文件由一种格式转换为另一种格式,例如将XML文件转换为PDF文件,将DOC文件转换为TXT文件,有些文件格式转换代码已经存在,为了将已有的代码应用于新软件,而不需要修改软件的整体结构,可以使用()模式进行系统设计。A、 适配器(Adapter)B、组合(Composite)C、外观(Faced)D、桥接(Bridge)23.在对象适配器模式中,适配器类(Adapter)和适配者类(Adaptee)之间的关系为()。A、 关联关系B、依赖关系C、继承关系D、实现关系24.()模式将抽象部分与它的实现部分相分离,使它们都可以独立地变化。图10-7
13、所示为该模式的图,其中,()用于定义实现部分的接口。A、单例(Simple) B、桥接(Bridge) C、组合(Composite) D、外观(Faced)A、AbstractionB、ConcreteImplementorA C、ConcreteImplementorBD、Implementor25.以下关于桥接模式的叙述错误的是()。A、 桥接模式的用意是将抽象化与实现化解耦,使得亮着可以独立地变化。B、 桥接模式将继承关系转换成关联关系,从而降低系统的耦合度。C、 桥接模式来源动态地给一个对象增加功能,这些功能也可以动态的撤销。D、 桥接模式可以从接口中分离实现功能,使得设计更具有扩展
14、性。26.()不是桥接模式所适用的环境。A、 一个可以跨平台并支持多种格式的文件编辑器B、 一个支持多数据源的报表生成工具,可以以不同的图形方式显示报表信息C、 一个可动态选择排序算法的数据操作工具D、 一个支持多种编程语言的跨平台开发工具27.当不能采用生成子类的方法进行扩展时,可采用()模式动态地给一个对象添加一些额外的职责。A、外观(Faced) B、单例(Simple) C、参与者(Participant) D、装饰(Decorator)1、 以下()不是装饰模式的适用条件。A、 要扩展一个类的功能或给一个类增加附加责任B、 要动态地给一个对象增加功能,这些功能还可以动态撤销C、 要动
15、态组合多于一个的抽象化角色和实现化角色D、 要通过一些基本功能的组合产生复杂功能,而不使用继承关系28.Windows操作系统中的应用程序快捷方式是()模式的应用实例。A、代理(Proxy) B、组合(Composite) C、装饰(Decorator) D、外观(Faced)1、 以下关于代理模式的叙述错误的是()。A、 代理模式能够协调调用者和被调用者,从而在一定程度上降低系统的耦合度B、 控制对一个对象的访问,给不同的用户提供不同级别的使用权限时可以考虑使用远程代理C、 代理模式的缺点是请求的处理速度会变慢,并且实现代理模式需要额外的工作D、 代理模式给某一个对象提供一个代理,并由代理对
16、象控制对原对象的引用29.代理模式有多种类型,其中,智能引用代理是指()。A、 为某一个目标操作的结果提供临时的存储空间,以便多个客户端可以共享这些结果B、 保护目标不让恶意用户接近C、 使几个用户能够同时使用一个对象而没有冲突D、 当一个对象被引用时,提供一些额外的操作,例如将此对象被调用的次数记录下来30.以下关于命令模式的叙述错误的是()。A、 命令模式将一个请求封装为一个对象,从而可以用不同的请求对客户进行参数化B、 命令模式可以将请求发送至和请求接受者解耦C、 使用命令模式会导致某些系统有过多的具体命令类,导致在有些系统中命令模式变得不切实际D、 命令模式是对命令的封装,命令模式把发
17、出命令的责任和执行命令的责任机制在同一个类中,委派给同意的类来进行处理31.在()时无需使用命令模式。A、 实现撤销操作和恢复操作B、 将请求的发送者和接收者解耦C、 不改变聚合类的前提下定义作用于聚合中元素的新操作D、 不同的时间指定请求,并将请求排队32.()模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。A、 适配器(Adapter) B、迭代器(Iterator) C、原型(Prototype) D、观察者(Observer)33.在观察者模式中,( )。A、 一个Subject对象可对应多个Observer对象B、 Su
18、bject只能有一个ConcreteSubject子类C、 Observer只能有一个ConcreteObserver子类D、 一个Subject对象必须至少对应一个Observer对象34.下面这句话隐含了()模式。我和妹妹跟妈妈说:“妈妈,我和妹妹在院子里玩。饭做好了叫我们一声。”A、 适配器B、职责链C、观察者D、迭代器简答题1. 什么是设计模式,它包含那些基本要素? 设计模式是一套反复使用的、多数人知晓、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且提高代码的可靠性。设计模式是一种用于对软件系统中不断重现的设计问题的解决方案进行文档化的技术
19、,也是一种共享专家设计经验的技术。设计模式的基本要素:模式名称、问题、目的、解决方案、效果、实例代码、相关设计模式(其中有4个关键要素:模式名称、问题、解决方案、效果)2. 设计模式如何分类,每一类设计模式有何优点? (1)根据目的可分为创建型,结构型和行为型; 创建型模式主要用于创建对象 结构型模式主要用于处理类或对象的组合 行为型模式主要用于描述类或对象如何交互和怎样分配职责 (2)根据范围,即模式主要是处理类之间的关系还是处理对象之间的关系,可分为类模式和对象模式; 类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是一种静态关系 对象模式处理对象间的关系,这些
20、关系在运行时变化,更具动态性3. 设计模式具有哪些优点?(1)融合了众多专家的经验,并以一种标准的形式供广大开发人员所用(2)提供了一套通用的设计词汇和一种通用的语言,以方便开发人员之间进行沟通和交流,使得设计方案更加通俗易懂(3)让人们可以更加简单方便地复用成功的设计和体系结构(4)使得设计方案更加灵活,且易于修改(5)将提高软件系统的开发效率和软件质量,且在一定程度上节约设计成本(6)有助于初学者更深入地理解面向对象思想,方便阅读和学习现有类库与其他系统中的源代码,还可以提高软件的设计水平和代码质量4. 常见的设计模式有哪些优点?简单工厂模式:(1)实现了对象创建和使用的分离;(2)客户端
21、无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可;工厂方法模式:(1)工厂方法用来创建客户所需要的产品,同时还向客户隐藏了哪种具体产品类将被实例化这一细节;(2)能够让工厂自主确定创建何种产品对象,而如何创建这个对象的细节则完全封装在具体工厂内部;(3)在系统中加入新产品时,完全符合开闭原则;单例模式:(1)提供了对唯一实例的受控访问;(2)可以节约系统资源,提高系统的性能;原型模式:(1)简化对象的创建过程,通过复制一个已有实例可以提高新实例的创建效率扩展性较好;(2)提供了简化的创建结构,原型模式中产品的复制是通过封装在原型类中的克隆方法实现的,无须专门的工厂类来创建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 模式 考点
链接地址:https://www.31ppt.com/p-2792656.html