您好,欢迎访问三七文档
总复习题复习参考资料:1.GoF设计模式2.设计模式解析3.易学设计模式4.大话设计模式5.深入浅出设计模式以参考资料为主,模拟试题1-5中有些题答案在一些附加资料中模拟试题1一、选择题(分值20)1.设计模式一般用来解决什么样的问题()A.同一问题的不同表相B不同问题的同一表相C.不同问题的不同表相D.以上都不是2.下列属于面向对象基本原则的是()A.继承B.封装C.里氏代换D都不是3.Open-Close原则的含义是一个软件实体()A.应当对扩展开放,对修改关闭.B.应当对修改开放,对扩展关闭C.应当对继承开放,对修改关闭D.以上都不对4.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。A.创建型B.结构型C行为型D.以上都可以5.要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是()的表述A.开-闭原则B.接口隔离原则C.里氏代换原则D.依赖倒转原则6.依据设计模式思想,程序开发中应优先使用的是()关系实现复用。A,委派B.继承C创建D.以上都不对7.设计模式的两大主题是()A.系统的维护与开发B对象组合与类的继承C.系统架构与系统开发D.系统复用与系统扩展8.单体模式中,两个基本要点()和单体类自己提供单例A.构造函数私有B.唯一实例C.静态工厂方法D.以上都不对9.下列模式中,属于行为模式的是()A.工厂模式B观察者C适配器以上都是10.“不要和陌生人说话”是()原则的通俗表述A.接口隔离B.里氏代换C.依赖倒转D.迪米特二、填空题(分值20)1.软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述,也不描述,它只描述系统的及其相互的。2.一个UML模型只描述了一个系统,它并没告诉我们系统是。3.接口是可以在整个模型中反复使用的一组行为,是一个没有而只有的类。4.多重性指的是,某个类有个对象可以和另一个类的对象关联。5.当一个类的对象可以充当多种角色时,关联就可能发生。6.在泛化关系中,可以替代。也就是说,后者出现的地方,前者都可以出现。但是反过来却不成立。7.最通常的依赖关系是一个类操作的中用到了的定义。8.组成是的聚集,因为聚集中的每个部分体只能属于整体。9.实现的符号和继承的符号有相似之处,两者的唯一差别是实现关系用表示,继承关系用表示。10.设计模式中应优先使用而不是。三、判断题(分值15)1.适配器模式属于创建型模式()2.在设计模式中,“效果”只是指“原因和结果”()3.设计模式使代码编制不能真正工程化()4.面向对象语言编程中的异常处理,可以理解为责任链模式()5.反模式就是反对在软件开发过程中使用设计模式()四、问答题(分值30)1.什么是设计模式?设计模式目标是什么?2.设计模式中一般都遵循的原则有什么?3.“GangofFour”针对“创建优秀面向对象设计”建议了哪些策略?4.面向对象系统中功能复用的两种最常用技术是什么?5.只根据抽象类中定义的接口来操纵对象有什么好处?五、应用题(分值15)公司架构:经理、工程师、技师和后勤人员都是公司的雇员,经理管理工程师、技师和后勤人员。高层经理领导较低级别的经理。典型层次图如下:可以使用哪种设计模式实现公司的层级关系?并说明为什么?模拟试题2一、选择题(分值20)1.在观察者模式中,表述错误的是()A.观察者角色的更新是被动的。B.被观察者可以通知观察者进行更新C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。D.以上表述全部错误。2.对于违反里式代换原则的两个类,可以采用的候选解决方案错误的是:()A.创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题。B.将B到A的继承关系改组成委派关系。C.区分是“IS-a”还是”Has-a”。如果是“Is-a”,可以使用继承关系,如果是”Has-a”应该改成委派关系D.以上方案错误3.下列模式属于结构型设计模式的是()A.CompositeB.享元(Flyweight)模式C.单体模式D.工厂方法4.关于继承表述错误的是:()A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。B.泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类)则通过附加属性和方法来进行实现的扩展。C.破坏了封装性,因为这会将父类的实现细节暴露给子类。D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。5.对于依赖倒转的表述错误的是()A.依赖于抽象而不依赖于具体,也就是针对接口编程。B.依赖倒转的接口并非语法意义上的接口,而是一个类对其他对象进行调用时,所知道的方法集合。C.从选项B的角度论述,一个对象可以有多个接口。D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。而且不必知道所用的对象是那个实现类的实例。E.此题没有正确答案。6.可以使用哪一种设计模式限制类的实例唯一?()A.工厂方法B.生成器模式C.原型模式D.单体模式7.Java数据库连接库JDBC用到哪种设计模式()?A.生成器B.工厂方法C.抽象工厂D.单体8.关于运用GOF工厂方法的效果Consequences,说法不正确的是()A.将客户代码与应用相关的类解耦B.它使得所涉及的产品系列可替换C.它有利于产品的一致性D.它较易于支持新种类的产品8.在应用程序中可用哪些设计模式分离出算法?()A.工厂方法B.策略模式C.访问者模式D.装饰器模式9.工厂方法也称为()A.抽象工厂B.抽象构造器C.虚工厂D.虚构造器10.可以使用哪种设计模式将抽象和实现解耦,使得抽象和实现可以独自变化?()A.适配器模式B.桥接模式C.外观模式D.组合桥接模式二、填空题(分值20)1.面向对象的七条基本原则包括:开闭原则,里式代换原则,合成聚合原则以及(),(),(),()。2.在存在继承关系的情况下,方法向()方向集中,而数据向()方向集中。3.适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器采用的是()关系,而对象适配器采用的是()关系。4.设计模式的四个基本要素是(),(),()和()。5..创建型模式的根本意图是要把()和()的责任进行分离,从而降低系统的()。6.工厂模式分为(),(),()三种类型。7.门面模式是()法则的典型运用8.MVC模型的基本工作原理是基于()模式,实现是基于()模式9.设计模式的思想根源是()基本原则的宏观运用,本质上是没有任何模式的,发现模式的人永远是大师,而死守模式的人,最对只能是一个工匠.三、判断题(分值15)1.虚拟代理可以使用一个小对象代替大对象,从而减少系统的资源的消耗,提高系统运行速度。()2.命令模式可以消除请求发送者与请求接收者彼此之间的耦合,使得对象之间的关系更加灵活。()3.解释器模式是对象行为型模式,通常较少使用。()4.迭代器模式是开闭原则最好体现,因为迭代器模式将聚合对象和迭代器分离开来。()5.中介者模式设计符合单一职责原则。()四、问答题(分值30)1.在MVC模型中M、V、C分别指什么?简述它们之间的关系?2.什么是开闭原则?3.设计数据库的系统日志,要考虑使用哪些设计模式?4.使用工厂模式的主要原因是什么?5.在面向对象设计中,《编译原理》的有限状态机可以什么样解决方案完成?五、应用题(分值20)考虑如下场景的设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。问:(1)设计可能用到什么设计模式?(2)画出其类图。得分评卷人模拟试题3一、多项选择题(分值30)(1)以下是模式的基本要素的是()A)名称B)意图C)解决方案D)参与者和协作者(2)常用的描述设计模式的格式有()A)意图B)动机C)适用性D)结构(3)以下哪些问题通过应用设计模式能够解决()。A)指定对象的接口B)排除软件BUGC)确定软件的功能都正确实现D)设计应支持变化(4)面向对象系统中功能复用的最常用技术是()。A)类继承B)对象组合C)使用抽象类D)使用实现类(5)常用的基本设计模式可分为()。A)创建型、结构型和行为型B)对象型、结构型和行为型C)过程型、结构型和行为型D)抽象型、接口型和实现型(6)以下关于创建型模式说法正确的是()。A)创建型模式关注的是对象的创建B)创建型模式关注的是功能的实现C)创建型模式关注的是组织类和对象的常用方法D)创建型模式关注的是对象间的协作(7)以下属于创建型模式的是()。A)抽象工厂(AbstractFactory)模式B)合成(Composite)模式C)单例(Singleton)模式D)桥接(Bridge)模式(8)()模式是利用一个对象,快速生成一批对象。A)抽象工厂(AbstractFactory)模式B)合成(Composite)模式C)原型(Prototype)模式D)桥接(Bridge)模式(9)在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。主要体现在()。A)适配器(Adapter)模式B)合成(Composite)模式C)原型(Prototype)模式D)桥接(Bridge)模式(10)结构型模式中最体现扩展性的几种模式是()A)适配器(Adapter)模式B)合成(Composite)模式C)装饰(Decorator)模式D)桥接(Bridge)模式(11)行为类模式使用()在类间分派行为。A)接口B)继承机制C)对象组合D)委托(12)以下属于行为对象模式的是()A)模板(TemplateMethod)模式B)迭代器(Iterator)模式C)命令(Command)模式D)观察者(Observer)模式(13)封装分布于多个类之间的行为的模式是()A)观察者(Observer)模式B)迭代器(Iterator)模式C)访问者(Visitor)模式D)策略(Strategy)模式(14)Observer(观察者)模式适用于()A)当一个抽象模型存在两个方面,其中一个方面依赖于另一方面,将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。B)当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变时。C)当一个对象必须通知其它对象,而它又不能假定其它对象是谁。也就是说你不希望这些对象是紧耦合的。D)一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作。(15)Java的异常处理机制可理解为哪一种行为模式()。A)观察者(Observer)模式B)迭代器(Iterator)模式C)职责链(ChainofResponsibility)模式D)策略(Strategy)模式二、填空题(分值20)把下列面向对象的术语填入对应的括号中:里氏替换(LSP)、接口隔离(ISP)、依赖倒置(DIP)、单一职责(SRP)、开闭(OCP)、优先使用组合(CARP)、接口1.()原则的核心思想是系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。2.()原则的核心思想是一个对象对扩展开放,对修改关闭;实现此原则的关键就在于()、分离出()部分和()部分。3.()原则的核心思想是在任何父类出现的地方都可以用它的子类来替代。4.()原则的核心思想是要依赖于抽象,而不要依赖于具体的实现。5.()原则的核心思想是不应该强迫客户程序依赖于他们不用的方法。即一个接口不需要提供太多的行为,应该只提供一种对外的功能,不应该把所有的操作都封装在一个接口中。6.()原则的核心思想是一个对象应当对其它对象尽可能少的了解。或者说,只和你的朋友说话。这样一些对象可以看做朋友:当前对象本身、通过方法的参数传递进来的对象、当前对象所创建的对象、当前对象的实例变量所引用的对象和方法内所创建或者实例化的对象。7.()原则的核心思想是优先使用组合而非继承。8.设计模式应该面向()编程三、判断题(分值10)1.单一职责原则表现在面向对象的程序中就是“高内聚、低耦合”。()2.设计模式只能遵从使用,不能也无需创新。()3.在面向对象编程时,
本文标题:设计模式总复习题
链接地址:https://www.777doc.com/doc-4398506 .html