设计模式试卷一.选择设计模式具有的优点()。A.适应需求变化B.程序便于理解C.减少开发过程中的代码开发工作量D.简化软件系统的设计设计模式通常拿来解决什么样的问题。A.同一问题的不同表相不同问题的同一表相C.不同问题的不同表相D.以上都不设计模式的两大主题是。A.系统的维护与开发B.对象组合与类的承继C.系统构架与系统开发D.系统复用与系统扩充以下什么问题通过应用设计模式不就能解决。()A)指定对象的插口B)针对插口编程C)确定软件的功能都正确实现D)设计应支持变化二.填空模式的基本要素包括名称、意图、问题、解决方案、参与者和协作者、(效果)、实现、GoF参考。设计模式基本原则包括:开闭原则,(从场景进行设计的原则),包容变化原则。在设计模式群体中,效果是指(原因和结果)。三.判断设计模式的两大主题是系统复用与系统扩充。对四.名词解释设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被别人理解、保证代码可靠性。模板模式定义一个操作中的算法的骨架,而将一些步骤延后到基类模式就是解决某一类问题的方法论。把解决某类问题的方式总结归纳到理论高度,那就是模式。
模块内部各成份彼此结合的紧密程度。五.简答题哪些是设计模式?设计模式的目标是哪些?设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被别人理解、保证代码可靠性。设计模式的基本要素有什么?名称,意图,问题,解决方案,参与者和协作者,效果,实现,GOF设计模式中通常都遵守的原则有哪些?开-闭原则,根据场景进行设计原则,优先组合原则,包容变化原三人团针对“创建优秀面向对象设计”建议了什么策略?针对插口编程,优先使用对象组合而不是类承继,找到并封装变化点。facade外形模式一.选择外形模式的作用是()。A.当不能采用生成泛型的方式进行扩展时,动态地给一个对象添加一些额外的功能。B.为了系统中的一组功能调用提供一个一致的插口,这个插口促使这一子系统愈发容易使C.保证一个类仅有一个实例,并提供一个访问他的全局访问点。D.在方式中定义算法的框架,而将算法中的一些操作步骤延后到泛型中实现。Fa?ade(外观)模式的意图是()。A.希望简化现有系统的使用方式软件设计模式考试答案,你须要定义自己的插口。B.将一个无法控制的现有对象与一个特定托词相匹配。C.将一组实现部份从另一组使用它们的对象中分离下来。
D.你须要为特定的顾客(或情况)提供特定系列的对象。()模式定义了一个高层插口,这个插口促使这一子系统愈发容易使用。A.Adapter(适配器)模式Strategy(策略)模式D.Facade(外观)模式例模式(Singleton)C.策略模式(Strategy)D.外观模式(Fa?ade)二.填空Facade模式可以拿来(隐藏)系统。该模式才能将系统作为自己的私有成员包含进来。Fa?ade模式要解决的问题:只须要使用一个复杂系统的一个(子集)。或者,需要用一种特殊的形式与系统交互。Fa?ade模式除了可以为方式调用创建更(简单)的插口,还可以降低顾客必须处理的对象数目。Fa?ade外型模式的解决方案是向顾客诠释使用现有系统的一个新的(接口)。三.判断Fa?ade(外观)模式除了可以为方式调用创建更简单的插口,还可以降低顾客必须处理的对象数目。对外形模式,当不能采用生成泛型的方式进行扩展时,动态地给一个对象添加一些额外的功能。错Fa?ade模式为子系统中的一组插口提供的界面可能不一致。Fa?ade外型模式只能为方式调用创建更简单的插口软件设计模式考试答案,不能降低顾客必须处理的对象数目。错四.名词解释Fa?ade模式模式定义了一个高层插口,使得这一子系统愈发容易使用,为子系统中的一组插口提供一个一致的界面。
接口包含了一系列不被实现的方式,而把这种方式的实现交给承继它组合一个类是另一个类的组成成份。耦合度对模块间关联程度的测度。五.简答题Fa?ade(外观)模式解决问题的方案是哪些?如何实现?Fa?ade向顾客诠释使用现有系统的一个新的插口。如何实现:定义一个(或一组)新的类来封装所需的插口。让新的类使用现有的系统。请简略说明在一个复杂系统中应用Fa?ade(外观)模式的优当拥有一个复杂的系统时,Fa?ade(外观)模式使我们只须要使用它的一部分功能。最终我们将得到一个更简单,更容易使用的或按照我们的须要订制的系统。Fa?ade模式的意图是哪些?望那种简化现有系统的使用方式,需要定义自己的插口。Facade模式中,客户是怎样使用子系统的?六.应用题请阐述在一个系统中应用Fa?ade(外观)模式的必要性,并给出一种解决方案。Fa?ade(外观)模式除了可以为方式调用创建更简单的插口,还可以降低顾客必须处理的对象数目。举个反例。假设有一个Client对象,这个对象必须处理Database、Model、Element类的对象。Client必须首先通过Database对象打开数据库,以得到一个对Model对象的引用,然后再向Model对象恳求一个Element对象,最后向Element对象查询所需的信息。
而倘若能创建一个DatabaseFacade让Client对象向它发出恳求,那么里面的过程可能还会显得简单一些。请举例说明Facade模式和Adapter模式使用场景的差别,并说明它们的解决方案及表现的特征。第7Adapter适配器模式一.选择希望简化现有系统的使用方式。你须要定义自己的托词。B.将一个无法控制的现有对象与一个特定托词相匹配。C.将一组实现部份从另一组使用它们的对象中分离下来。D.你须要为特定的顾客(或情况)提供特定系列的对象。下面不属于创建型模式的有()。A.抽象鞋厂模式(AbstractFactory鞋厂方式模式(FactoryMethod)C.适配器模式(Adapter)D.单例模式(Singleton)将一个类的插口转换成顾客希望的另一个插口。这句话是对下述哪种模式的描述()。A.策略模式(Strategies)B.桥接模式(Bridge)C.适配器模式(Adapter)D.单例模式(Singleton)以下关于结构型模式说法不正确的是。()A)结构型模式可以在不破坏类封装性的基础上,实现新的功能。B)结构型模式主要用于创建一组对象。C)结构型模式可以创建一组类的统一访问插口。
D)结构型模式可以在不破坏类封装性的基础上,使得类可以同不曾恐怕到的系统进行交互。二.填空适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器采用的是承继关系,而对象适配器采用的是(组合聚合)关系。Adapter模式有两种类型有:对象Adapter模式、Adapter模式UML是一种拿来创建(程序模型)的图象语言。(Adapter适配器)模式使原先插口不兼容而不能一起工作的类可以一起工作。 适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器采用的是(继承)关系,而对象适配 器采用的是组合降维关系。 三.判断 Adapter模式使原先因为插口不兼容而不能一起工作的这些 类可以一起工作。对 Fa?ade模式和 Adapter 模式是相同类型的包装器。错 Adapter模式不是必须针对某个插口进行设计。错 四.名词解释 Adapter模式将一个类的插口转换成顾客希望的另外一个接 口。Adapter 模式使原先因为插口不兼容而不能一起工作的这些 类可以一起工作。 对象Adapter模式 使用Adapter 模式与适当的抽象类相匹配,它一般依赖于一个对 象(适配对象)包含另一个对象(被适配对象)。
Adapter模式 当实现Adapter 模式的方式是使用多重承继。在这些情况下,它 被成为类 Adapter 模式。 多态相关的对象根据各自类型来实现方式的能力。五.简答题 给出Adapter模式的定义及意图。意图是将一个类的插口转 换成顾客希望的另外一个插口。Adapter 模式使原先因为插口不兼容 而不能一起工作 的这些类可以一起工作。 Adapter模式的最常见的用法是哪些?该模式可以使你不用操 心哪些方面? Adapter 模式最一般的用途就是保持多态。Adapter 模式让我们 在进行设计时毋须再害怕现存类的插口问题。 Adapter模式问题的解决方案以及怎样实现? 解决方案是 Adapter 模式用我们须要的插口对未能更改的类进 行包装。实现:将现存的类包含在另一个类之中。包容类与须要的接 口相匹配,并调用被宽容类的方式。 请简略说明在软件设计中设计模式的作用?软件设计模式(Design Pattern)是一套被反复使用、多数人知晓 的、经过分类编目的代码设计经验的总结。 使用设计模式是为了适应需求变化、可重用代码、让代码更容易 被别人理解、保证代码的可靠性。 六.应用题 根据你的理解,请剖析Fa?ade 模式比 Adapter 模式的相同 点和不同点,并说明它们在实际应用中的差别? 在两个模式中,都拥有现存的类,但是在 Fa?ade 模式中,无须针 对某个插口进行设计;而在 Adapter 模式中 则必须针对某个特定插口进行设计。
在 Fa?ade 模式中,动机是 简化插口,而在 Adapter 模式中,尽管也是越简单 越好,目的是针对一个现有的插口进行设计,并不能简化任何东 西,即使可能有另一个更简单的插口。总之,在实 际应用中,Fa?ade 模式简化插口,而Adapter 模式将插口转换成 另一个现有的插口。 请说明哪些是Adapter 模式,Adapter 模式有哪几种方式? 请举例说明第8 Bridge桥接模式 一.选择 关于承继叙述错误的是:()。A.继承是一种通过扩充一个已 有对象的实现,从而获得新功能的复用方式。B.超类可以显式地捕获 那些公共的属性和技巧。子类则通过附加属性和技巧来进行实现的扩 展。C.在一定意义上说破坏了封装性,因为这会将父类的实现细节暴 露给基类。D.继承本质上是“白盒复用”,对父类的更改,不会影响到 子类。 在不破坏类封装性的基础上,使得类可以同不曾恐怕到的系统进行交互。主要彰显在( 装饰模式DecoratorC 策略模式(Strategies)