设计模式考点

上传人:M****1 文档编号:564962198 上传时间:2022-08-20 格式:DOCX 页数:16 大小:97.98KB
返回 下载 相关 举报
设计模式考点_第1页
第1页 / 共16页
设计模式考点_第2页
第2页 / 共16页
设计模式考点_第3页
第3页 / 共16页
设计模式考点_第4页
第4页 / 共16页
设计模式考点_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《设计模式考点》由会员分享,可在线阅读,更多相关《设计模式考点(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、就一个类而言,应该有且仅有一个引起它变化的原因。C、一个类承担的职责越多,越容易复用,被复

3、用的可能性越大。D、当一个类承担的职责过多时,需要将职责进行分离,将不同的职责封装 在不同的类中。6. 以下关于面向对象设计的的叙述中,错误的是( )。A、高层模块不应该依赖于低层模块。B、抽象不应该依赖于细节。C、细节可以依赖于抽象。D、高层模块无法不依赖于低层模块。7. 在系统设计中应用迪米特法则,以下叙述有误的是( )。A、在类的划上,一个尽量创建松耦合的类,类的耦合度越低,复用越容易。B、如果两个类之间不必彼此直接通信,那么这两个类就不应该发生直接的 相互作用。C、在对其他类的引用上,一个对象对其他对象的引用应该降到最低。D、在类的设计上,只要有可能,一个类型应该尽量设计成抽象类或接口

4、, 且成员变量和成员函数的访问权限最好设置为公开的。8. 在简单工厂模式中,如果需要增加新的具体产品,通常需要修改( )的源代码。A、抽象产品类B、其他具体产品类C、工厂类D、客户类9. 以下关于简单工厂模式叙述错误的是( )。A、简单工厂模式可以根据参数的不同返回不同的产品类的实例。B、简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例 通常都具有共同的父类。C、简单工厂模式可以减少系统中的类的个数,简化系统的设计,使得系统 更易于理解。D、系统的扩展困难,在添加新的产品时需要修好工厂的业务逻辑,违背了 开闭原则。10. 以下代码使用了( )模式。abstract class P

5、roductpublic 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 ConcreateProductB();break;A、Simple Factory B、Factory MethodB、C、Abstra

6、ct FactoryD、未使用任何设计模式11.不同品牌的手机应该由不同是公司所造,例如 Motorola 公司生产 Motorola 手 机,Nokia公司生产Nokia手机。该场景蕴含了()模式。A、Simple Factory B、 Factory MethodC、 Abstract FactoryD、Builder12. 以下关于工厂方法模式的叙述错误的是( )。A、在工厂方法模式中引入了抽象工厂类,二具体产品的场景延迟到具体工 厂中实现B、使用工厂方法模式添加新的产品对象很容易,无须对原有系统进行修改, 符合开闭原则C、工厂方法模式存在的问题是在添加新产品时,需要编写新的具体产品类,

7、 而且提供与之对应的具体工厂类,随着类个数的增加,会给系统带来一 些额外开销。D、工厂方法模式是所有形式的工厂模式中的最为抽象和最具一般性的一种 形态,工厂方法模式退化后可以演变成抽象工厂模式。13. 某银行系统采用工厂模式描述其不同账户之间的关系,设计出的类图如图 4-7 所示。其中,与工厂模式中的“Creator”角色相对应的类是();与Product” 角色相对应的类是()。 A、BankB、AccountC、CheckingD、Savings A、BankB、AccountC、CheckingD、Savings14、关于C#中的MemberwiseClone()方法,以下叙述有误的是(

8、)。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、原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后 用复制这个原型对象的方法创建出更多同类型的对象B、

9、浅克隆仅仅复制所考虑的对象,而不复制它所引用的对象,也就是其 中的成员对象并不复制C、在原型模式中实现深克隆时通常需要编写较为复杂的代码D、在原型模式中不需要为每一个类配备一个克隆方法,因此对于原型 模式的扩展 很灵活,对于已有类的改造也较为容易16. 某公司要开发一个即时聊天软件,用户在聊天过程中可以与多位好友同时聊 天,在私聊时将产生多个聊天窗口,为了提高聊天窗口的创建效率,要去根据第 一个窗口快速创建其他窗口。针对这种需求,采用()进行设计最为合适。A、享元模式 B、单例模式 C、原型模式D、组合模式17. 在()时可使用单例模式。A、隔离菜单项对象的创建和使用B、防止一个资源管理器窗口

10、被实例化多次C、使用一个已有的查找算法而不想修改既有代码D、不能创建子类,需要扩展一个数据过滤器18. 以下关于单例模式的描述,正确的是()。A、它描述了只有一个方法的类的集合B、它能够保证一个类只产生一个唯一的实例C、它描述了只有一个属性的类的集合D、它能够保证一个类的方法只能被一个唯一的类调用19. 以下()不是单例模式的要点。A、某个类只能有一个实例B、单例类不能被继承C、必须自行创建单个实例D、必须自行向整个系统提供单个实例20. ()将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不 兼容而不能一起工作的那些类可以一起工作。A、命令(Comma nd)模式B、适配器(Ad

11、apter)模式C、策略(Strategy)模式D、单例(Si mple)模式21. 以下关于适配器模式的叙述错误的是()。A、适配器模式将一个接口装换成客户希望的另一个接口,使得原本由于接 口不兼容那些类可以一起工作。B、在类适配器中,Adapter和Adaptee是继承关系,而在对象适配器中,Adapter 和 Adaptee 是关联关系。C、类适配器比对象适配器更加灵活,在C#语言中可以通过类适配器一次视 频多个适配者类。D、适配器可以在不修改原来的适配者接口 Adaptee的情况下将一个类的接 口和另一个类的接口匹配起来。22. 现需要开发一个文件转换软件,将文件由一种格式转换为另一种

12、格式,例如将 XML文件转换为PDF文件,将DOC文件转换为TXT文件,有些文件格式转换代 码已经存在,为了将已有的代码应用于新软件,而不需要修改软件的整体结构, 可以使用()模式进行系统设计。A、适配器(Adapter)B、组合(Composite)C、外观(Faced)D、桥接(Bridge)23. 在对象适配器模式中,适配器类(Adapter)和适配者类(Adaptee)之间的关系为 ()。A、关联关系 B、依赖关系C、继承关系D、实现关系24(. )模式将抽象部分与它的实现部分相分离,使它们都可以独立地变化。图 10-7 所示为该模式的图,其中,()用于定义实现部分的接口。class

13、2 A、单例(Simple)B、桥接(Bridge) C、组合(Composite) D、外观(Faced) A、AbstractionB、ConcretelmplementorAC、 ConcreteImplementorB D、 Implementor25. 以下关于桥接模式的叙述错误的是()。A、桥接模式的用意是将抽象化与实现化解耦,使得亮着可以独立地变化。B、桥接模式将继承关系转换成关联关系,从而降低系统的耦合度。C、桥接模式来源动态地给一个对象增加功能,这些功能也可以动态的撤销。D、桥接模式可以从接口中分离实现功能,使得设计更具有扩展性。26. ()不是桥接模式所适用的环境。A、一个

14、可以跨平台并支持多种格式的文件编辑器B、一个支持多数据源的报表生成工具,可以以不同的图形方式显示报表信息C、一个可动态选择排序算法的数据操作工具D、一个支持多种编程语言的跨平台开发工具27. 当不能采用生成子类的方法进行扩展时,可采用()模式动态地给一个对象添 加一些额外的职责。A、外观(Faced) B、单例(Simple) C、参与者(Participa nt) D、装饰(Decorator)1、以下()不是装饰模式的适用条件。A、要扩展一个类的功能或给一个类增加附加责任B、要动态地给一个对象增加功能,这些功能还可以动态撤销C、要动态组合多于一个的抽象化角色和实现化角色D、要通过一些基本功

15、能的组合产生复杂功能,而不使用继承关系28. W in dows操作系统中的应用程序快捷方式是()模式的应用实例。A、代理(Proxy) B、组合(Composite) C、装饰(Decorator) D、外观(Faced) 1、以下关于代理模式的叙述错误的是()。A、代理模式能够协调调用者和被调用者,从而在一定程度上降低系统的耦 合度B、控制对一个对象的访问,给不同的用户提供不同级别的使用权限时可以 考虑使用远程代理C、代理模式的缺点是请求的处理速度会变慢,并且实现代理模式需要额外 的工作D、代理模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用29. 代理模式有多种类型,其中,智能引用代理是指()。A、为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号