java设计模式选择题复习

合集下载

JAVA语言程序设计复习题

JAVA语言程序设计复习题

一、选择填空题:全部为多选题,只有全部正确才能得分。

1. 编译java程序的命令是___b_____;运行java程序的命令是____a____;产生java 文挡的命令是____d____;查询java类型是否是serializable类型的命令是__c______;产生java安全策略文件的命令是____e____;产生类型归档文件.jar的命令是____f____。

A. java

B. javac

C. serialver

D.javadoc

E.policytool

F.jar

2. 在一个java原文件中,import, class, package语句的顺序是____f____。

A. import class package

B. class import package

C. package class import

D. import package class

E. class package import

F. package import class

3. 下面叙述正确的有________cde____________。

A. 在一个java原文件中只能定义一个class

B. 在一个java原文件中只能定义一个interface

C. 在一个java原文件中可以定义多个class

D.在一个java原文件中可以定义多个interface

E. 在一个java原文件中可以定义多个class和interface

F. 在一个java原文件中只能定义public class

G. java原文件的前缀一定是所包含类型的名字

软件设计模式(JAVA)习题答案

软件设计模式(JAVA)习题答案

软件设计模式(Java版)习题

第1章软件设计模式基础

1.1 软件设计模式概述

1.2 UML中的类图

1.3 面向对象的设计原则

一、名词解释

1.一个软件实体应当对扩展开放,对修改关闭,即在不修改源代码的基础上扩展

一个系统的行为。

2.一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。

3.在软件中如果能够使用基类对象,那么一定能够使用其子类对象。

4.是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,

使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

二、单选择题

1.( A )

2.( A )

3. ( A )

4. ( D )

5. ( D )

6.( A ) 7. ( D ) 8.( D ) 9.( D ) 10.( E )

11.( C ) 12.( C ) 13. ( A )

三、多选择题

1.( A、B、C、D ) 2. ( A、B ) 3.( A、D ) 4.( A、B、C、D ) 四、填空题

1.依赖倒转、迪米特法则、单一职责

2.模式名字、目的、问题、解决方案、效果、实例代码

3.超类、子类

4.开闭

5.用户

6.依赖倒转

7.组合/聚合

8.结构型、行为型

9.依赖倒转

10.开闭

11.需求收集是否正确、体系结构的构建是否合理、测试是否完全

12.人与人之间的交流

13.接口

14.名称、目的、解决方案

15.对象组合、类继承

16.对象组合

17.对象组合、类继承

18.抽象类的指针

五、简答题

1.答:设计模式按类型分为以下三类:

1)创建型设计模式:以灵活的方式创建对象集合,用于管理对象的创建。

java设计模式考试题

java设计模式考试题

A. 系统的维护与开发

B 对象组合与类的继承 C. 系统架构与系统开发 D. 系统复用与系统扩展

8、单子模式中 , 两个基本要点 A . 构造函数私有

( a b ) 和单子类自己提供单例

B. 唯一实例

C. 静态工厂方法

D. 以上都不对 9、下列模式中 , 属于行为模式的是 ( b )

A. 工厂模式 B 观察者 C 适配器 以上都是

10、“不要和陌生人说话” 是 ( d ) 原则的通俗表述

A. 接口隔离

B. 里氏代换

C. 依赖倒转 尽可能少

的了解

D. 迪米特:一个对象应对其他对象 11、构造者的的退化模式是通过合并(

c )角色完成退化的。 A. 抽象产品 B 产品 C 创建者

D 使用者

1、设计模式一般用来解决什么样的问题

( a) A. 同一问题的不同表相

B 不同问题的同一表相 C. 不同问题的不同表相 D. 以上都不是

2、下列属于面向对象基本原则的是 ( c )

A. 继承

B. 封装

C. 里氏代换 D 都不是

3、Open-Close 原则的含义是一个软件实体 ( a )

A. 应当对扩展开放,对修改关闭 .

B. 应当对修改开放,对扩展关闭

C. 应当对继承开放,对修改关闭

D. 以上都不对

4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(

a )模式。

A. 创建型

B. 结构型 C 行为型 D. 以上都可以

5、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程

,是( d ) 的表述 A. 开 - 闭原则

B. 接口隔离原则

C. 里氏代换原则

D. 依赖倒转原则 6、依据设计模式思想 , 程序开发中应优先使用的是 ( a ) 关系实现复用。 A, 委派 B. 继承 C 创建

《java 设计模式》模拟试题

《java 设计模式》模拟试题

《java 设计模式》模拟试题

一、选择题(请将下列问题的正确答案填入括号内,每题5分,共50分)

1. 单例模式是一种对象设计模式,它提供了一种创建对象的最佳方式。在Java中,以下哪种方式可以实现单例模式?

A. 饿汉式

B. 懒汉式

C. 双重校验锁

D. 静态内部类

2. 观察者模式是一种行为型设计模式,它定义了对象之间的依赖关系,使得当一个对象改变状态时,所有依赖于它的对象都会得到通知并自动更新。在Java中,以下哪个类是观察者模式的抽象实现?

A. java.util.Observer

B. java.util.Observable

C. java.util.EventObject

D. java.util.EventListener

3. 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在Java中,以下哪个类是工厂模式的抽象实现?

A. java.util.Factory

B. java.util.Product

C. java.util.FactoryMethod

D. java.util.AbstractFactory

4. 适配器模式是一种结构型设计模式,它通过把一个类的接口变换成客户端所期待的另一种接口,可以帮助不兼容的类一起工作。在Java中,以下哪个类是适配器模式的抽象实现?

A. java.util.Adapter

B. java.util.Target

C. java.util.Adaptee

D. java.util.Client

5. 装饰器模式是一种结构型设计模式,它可以在运行时动态地给对象添加一些额外的职责。在Java中,以下哪个类是装饰器模式的抽象实现?

设计模式习题及参考答案

设计模式习题及参考答案

设计模式习题及参考答案

《设计模式》复习题

⼀、单选题

1.不同级别的⽤户对同⼀对象拥有不同的访问权利或某个客户端不能直接操作到某个对象,但⼜必须和那个对象有所互动,这种情况最好使⽤什么设计模式( )

A. Bridge模式

B. Facade模式

C. Adapter模式

D. Proxy模式

2.模式常⽤的基本设计模式可分为( )

A.创建型、结构型和⾏为型

B.对象型、结构型和⾏为型

C.过程型、结构型和⾏为型

D.抽象型、接⼝型和实现型

3.以下哪个模式是利⽤⼀个对象,快速地⽣成⼀批对象( )

A. 抽象⼯⼚(Abstract Factory)模式

B. 合成(Composite)模式

C. 原型(Prototype)模式

D. 桥接(Bridge)模式

4.以下不属于结构型模式是( )

A. COMPOSITE(组合)

B. ADAPTER(适配器)

C. FLYWEIGHT(享元)

D. SINGLETON(单例)

5.以下意图那个是⽤来描述ABSTRACT FACTORY(抽象⼯⼚)模式( ) 。

A.提供⼀个创建⼀系列相关或相互依赖对象的接⼝,⽽⽆需指定它们具体的类。

B.定义⼀个⽤于创建对象的接⼝,让⼦类决定实例化哪⼀个类。

C.将⼀个类的接⼝转换成客户希望的另外⼀个接⼝。

D.表⽰⼀个作⽤于某对象结构中的各元素的操作。

6.设计模式的两⼤主题是( )

A.系统的维护与开发 B 对象组合与类的继承

C.系统架构与系统开发

D.系统复⽤与系统扩展

7.外观模式的作⽤是()

A.当不能采⽤⽣成⼦类的⽅法进⾏扩充时,动态地给⼀个对象添加⼀些额外的功

设计模式考试复习试题[含答案解析]

设计模式考试复习试题[含答案解析]

一、1. 设计模式一般用来解决什么样的问题: A.同一问题的不同表相

2. 下列属于面向对象基本原则的是: C.里氏代换

3. Open-Close原则的含义是一个软件实体:A.应当对扩展开放,对修改关闭.

4. 当我们想创建一个具体的对象而又不希望指定具体的类时,使用(A)模式。A.创建型

5. 要依赖于抽象不要依赖于具体。即针对接口编程不要针对实现编程:(D)依赖倒转原则

6. 依据设计模式思想,程序开发中应优先使用的是( A )关系实现复用。A, 委派

7. 设计模式的两大主题是( D ) D.系统复用与系统扩展

8. 单体模式中,两个基本要点(AB)和单体类自己提供单例A .构造函数私有 B.唯一实例

9. 下列模式中,属于行为模式的是( B ) B观察者

10. “不要和陌生人说话”是( D )原则的通俗表述 D.迪米特

1. 软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述活动,也不描述系统怎样开发,它只描述系统的组成元素及其相互的交互协作。2.一个UML模型只描述了一个系统要做什么,它并没告诉我们系统是怎么做。3.接口是可以在整个模型中反复使用的一组行为,是一个没有属性而只有方法的类。4.多重性指的是,某个类有多个对象可以和另一个类的一对象关联。

5.当一个类的对象可以充当多种角色时,自身关联就可能发生。

6.在泛化关系中,子类可以替代父类。后前者出现的可以相同地方。反过来却不成立。7.最通常的依赖关系是一个类操作的形构中用到了另一个类的定义。8.组成是强类型的聚集,因为聚集中的每个部分体只能属于一个整体。9.实现的符号和继承的符号有相似之处,两者的唯一差别是实现关系用虚线表示,继承关系用实线表示。

设计模式考试复习试题[含答案解析]

设计模式考试复习试题[含答案解析]

设计模式考试复习试题[含答案解析]

一、1. 设计模式一般用来解决什么样的问题:A.同一问题的不同表相

2. 下列属于面向对象基本原则的是: C.里氏代换

3. Open-Close原则的含义是一个软件实体:A.应当对扩展开放,对修改关闭.

4. 当我们想创建一个具体的对象而又不希望指定具体的类时,使用(A)模式。A.创建型

5. 要依赖于抽象不要依赖于具体。即针对接口编程不要针对实现编程:(D)依赖倒转原则

6. 依据设计模式思想,程序开发中应优先使用的是( A )关系实现复用。A, 委派

7. 设计模式的两大主题是( D ) D.系统复用与系统扩展

8. 单体模式中,两个基本要点(AB)和单体类自己提供单例A .构造函数私有 B.唯一实例

9. 下列模式中,属于行为模式的是( B ) B观察者

10. “不要和陌生人说话”是( D )原则的通俗表述 D.迪米特

1. 软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述活动,也不描述系统怎样开发,它只描述系统的组成元素及其相互的交互协作。2.一个UML模型只描述了一个系统要做什么,它并没告诉我们系统是怎么做。3.接口是可以在整个模型中反复使用的一组行为,是一个没有属性而只有方法的类。4.多重性指的是,某个类有多个对象可以和另一个类的一对象关联。

5.当一个类的对象可以充当多种角色时,自身关联就可能发生。

6.在泛化关系中,子类可以替代父类。后前者出现的可以相同地方。反过来却不成立。7.最通常的依赖关系是一个类操作的形构中用到了另一个类的定义。8.组成是强类型的聚集,因为聚集中的每个部分体只能属于一个整体。9.实现的符号和继承的符号有相似之处,两者的唯一差别是实现关系用虚线表示,继承关系用实线表示。

《JAVA设计模式》期末考试复习资料

《JAVA设计模式》期末考试复习资料

《JAVA设计模式》复习资料

一、单项选择题

1.设计模式起源于()

A、机械设计

B、建筑工程设计

C、水利工程设计

D、工业电力化设计

2.“不要和陌生人说话”是()原则的通俗表述。

A、接口隔离

B、里氏替换

C、依赖倒置

D、迪米特

3.目前常见的设计模式主要有()种。

A、23

B、21

C、32

D、28

4.以下关于单一职责原则的叙述不正确的是()。

A、单一职责原则的英文名称是Single Responsibility Principle.

B、单一职责原则要求一个类只有一个职责

C、单一职责原则有利于对象的稳定,降低类的复杂性

D、单一职责原则提高了类之间的耦合性

5.以下关于依赖倒置原则的叙述不正确的是()

A、依赖倒置原则的简称是DIP

B、高层模块不依赖于低层模块,低层模块依赖于高层模块

C、依赖倒置原则中高层模块和低层模块都依赖于抽象

D、依赖倒置原则实现模块间的松耦合

6.下面关于单例模式说法错误的是()

A、单例模式是指一个类只有一个实例

B、单例类从实现方式上分为懒汉式和饿汉式

C、单例类从功能上分为状态单例类和无状态单例类

D、可以通过继承的方式对单例类进行扩展得到功能更丰富的单例类

7.下面关于工厂方法模式说法错误的是()。

A、工厂方法模式使一个类是实例化延迟到其子类中

B、工厂方法模式中具有抽象工厂、具体工厂、抽象产品和具体产品4个角色

C、工厂方法模式可以处理多个产品的多个等级结构

D、工厂方法模式可以屏蔽产品类

8.在以下情况不适合使用责任职责链模式()

A、有多个对象可以处理请求,哪个对象处理该请求在运行时刻自动确定。

JAVA期末复习题

JAVA期末复习题

JA V A期末复习题

一、判断题。

1.Java语言是平台无关的语言。T

2.类的静态方法中可以访问该类的非静态数据成员.F

3.Java中方法调用时参数传递都是按值传递的,因此从方法中退出时,参数的值是不会变

的。T

4.覆盖方法所抛出的异常不能比原方法更多。T

5.Final 方法不能被覆盖。T

6.抽象类中一定包含抽象方法。F

7.接口中的方法必须是抽象方法。T

8.在方法定义中,所以可能发生的异常都必须用try{} catch(){}捕捉。F

9.Java支持多重继承。F

10.Final修饰的类不能派生子类。T

11.覆盖的同名方法中,子类方法不能比父类方法的访问权限更严格。T

12.不能在静态方法中使用

13.抽象类中不能创建对象。T

14.一个类可以实现多接口。T

15.接口中可以包含非静态成员。F

16.不论是否捕捉到异常try{}catch(){} final{}语句中finally块中的代码总要被执行。T

17.一个类实现一个接口,则该类必须实现接口中的所有方法。F

18.线程使用sleep方法去休眠后可以使用notify方法唤醒。F

19.线程使用sleep方法休眠是会释放该线程同步锁定的对象。F

20.Final类中的属性和方法都必须是final的。F

二、选择题

1、Java中复合数据类型不包括(D)

2、请从四个选项中选择答案,下列代码的执行结果是:(C)

Public class Test{

Public static void main(String args[]){

Float t=;

Int q=6;

java设计模式期末试题及答案

java设计模式期末试题及答案

java设计模式期末试题及答案

一、单选题(共10题,每题2分,共计20分)

1. 设计模式是一套用于解决软件设计问题的**经验**。

A) 规范

B) 经验

C) 原则

D) 方法

2. 下列哪种设计模式用于将对象的创建与使用分离,隐藏对象的创

建细节。

A) 工厂方法模式

B) 抽象工厂模式

C) 单例模式

D) 原型模式

3. 下列哪种设计模式用于定义一系列算法,将每个算法都封装起来,并且使它们可以相互替换。

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) 桥接模式

D) 抽象工厂模式

10. 下列哪种设计模式用于将复杂对象的构建与其表现分离开来,以便同样的构建过程可以创建不同的表现。

Java基础入门_课后复习题

Java基础入门_课后复习题

《Java基础入门》课后习题

第1章 Java开发入门

一、填空题

1、Java的三大体系分别是______、______、______。

2、Java程序的运行环境简称之为______。

3、编译Java程序需要使用______命令。

4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的______目录下。

5、______环境变量用来存储Java的编译和运行工具所在的路径,而______环境变量则用来保存保存

Java虚拟机要运行的“.class”文件路径。

二、选择题

1、以下选项中,哪些属于JDK工具?(多选)

A、Java编译器

B、Java运行工具

C、Java文档生成工具

D、Java打包工具

2、Java属于以下哪种语言?

A、机器语言

B、汇编语言

C、高级语言

D、以上都不对

3、下面哪种类型的文件可以在Java虚拟机中运行?

A、.java

B、.jre

C、.exe

D、.class

4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?

A、Java文档制作工具

B、Java解释器

C、Java编译器

D、Java启动器

5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和

java命令,需要将环境变量path设置为以下哪个选项?

A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d: \jre;

三、问答题

1、简述Java的特点。

2、简述JRE与JDK的区别。

四、编程题

java设计模式选择题复习

java设计模式选择题复习

工厂系列模式的优缺点:

1.让用户的代码和某个特定类的子类的代码解耦

用户不必知道它所使用的对象是怎样创建的,只需知道该对象有哪些方法

2.抽象工厂模式可以为用户创建一系列相关的对象,使用户和创建这些对象的类脱耦

MVC模式是不是一种设计模式?为什么

MVC不是设计模式,应该是框架/架构模式,因为它的定义是抽象的,没有足够的细节描述使你直接去实现,而只能根据MVC的概念和思想,用几个设计模式组合实现。

举出一个生活中使用装饰者模式的例子,用程序实现思路

举个生活中的例子,俗话说“人在衣着马在鞍”,把这就话用装饰者模式的语境翻译一下,“人通过漂亮的衣服装饰后,男人变帅了,女人变漂亮了;”。对应上面的类图,这里人对应于ConcreteComponent,而漂亮衣服则对应于ConcreteDecorator;

设计模式如何分类,每一个类别都有什么特征?

设计模式分为3类,分别是:创建型模式、行为型模式、结构型模式。

创建型特点:避免用户直接使用new运算符创建对象。

行为型特点:怎样合理的设计对象之间的交互通信,以及怎样合理的为对象分配职结构型特点:主要用于处理类或对象的组合

Java jdk中使用了哪些设计模式

1.单例

2.静态工厂

3.工厂方法

4.抽象工厂

5.构造者

6.原型

7.适配器8桥接9.

组合10.装饰器11.外观12.享元14.代理15.迭代器16.观察者17.协调者18.

模板方法19.策略20.责任链21.命令22.空对象25.解释器

面向对象的设计原则有哪些?

开闭原则、面向抽象的原则(依赖倒转原则)、多用组合少用继承原则、高内聚-低耦合原则。

设计模式考试复习题含答案

设计模式考试复习题含答案

一、1. 设计模式一般用来解决什么样的问题: A. 同一问题的不同表相

2. 下列属于面向对象基本原则的是: C. 里氏代换

3. Open-Close 原则的含义是一个软件实体: A. 应当对扩展开放,对修改关闭.

4. 当我们想创建一个具体的对象而又不希望指定具体的类时,使用(A)模式。 A. 创建型

5. 要依赖于抽象不要依赖于具体。即针对接口编程不要针对实现编程:(D)依赖倒转原则

6. 依据设计模式思想, 程序开发中应优先使用的是( A ) 关系实现复用。A, 委派

7. 设计模式的两大主题是( D ) D. 系统复用与系统扩展

8. 单体模式中, 两个基本要点(AB) 和单体类自己提供单例 A . 构造函数私有 B. 唯一实例

9. 下列模式中, 属于行为模式的是( B ) B 观察者

10. “不要和陌生人说话”是( D ) 原则的通俗表述 D. 迪米特

1. 软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述活动,也不描述系统怎样开发,它只描述系统的组成元素及其相互的交互协作。

2.一个UML模型只描述了一个系统要做什么,它并没告诉我们系统是怎么做。

3.接口是可以在整个模型中反复使用的一组行为,是一个没有属性而只有方法的类。

4.多重性指的是,某个类有多个对象可以和另一个类的一对象关联。

5.当一个类的对象可以充当多种角色时,自身关联就可能发生。

6.在泛化关系中,子类可以替代父类。后前者出现的可以相同地方。反过来却不成立。

7.最通常的依赖关系是一个类操作的形构中用到了另一个类的定义。

[14_15(2)]12(1)班《Java设计模式》期末A卷(答案)

[14_15(2)]12(1)班《Java设计模式》期末A卷(答案)



年级:12 专业:计算机科学技术 班级: 学号:
姓名:


题号 一




总分
签名


得分


注:1、共 120 分钟,总分 100 分;
— —
2、此试卷适用班级:计算机本科专业。


— —
得 分 阅卷教师 一


— —
一、单选择题:(30 分,每小题 2 分)
— —
1.关于模式适用性,在以下情况适合使用COMPOSITE(组合)模式?( C )
8.以下意图哪个是用来描述 ABSTRACT FACTORY(抽象工厂)? ( A ) A.提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的 类。 B.定义一个用于创建对象的接口,让子类决定实例化哪一个类。 C.将一个类的接口转换成客户希望的另外一个接口。 D.表示一个作用于某对象结构中的各元素的操作。
— —
D.以上方案错误

— —
11.以下意图那个是用来描述 ADAPTER(适配器)? ( A )

A.将一个类的接口转换成客户希望的另外一个接口,本模式使得原本由于接
— —
口不兼容而不能一起工作的那些类可以一起工作。

B.定义一个用于创建对象的接口,让子类决定实例化哪一个类。

设计模式考试复习题(含答案)

设计模式考试复习题(含答案)

一、1. 设计模式一般用来解决什么样的问题: A.同一问题的不同表相

2. 下列属于面向对象基本原则的是: C.里氏代换

3. Open-Close原则的含义是一个软件实体:A.应当对扩展开放,对修改关闭.

4. 当我们想创建一个具体的对象而又不希望指定具体的类时,使用(A)模式。A.创建型

5. 要依赖于抽象不要依赖于具体。即针对接口编程不要针对实现编程:(D)依赖倒转原则

6. 依据设计模式思想,程序开发中应优先使用的是( A )关系实现复用。A, 委派

7. 设计模式的两大主题是( D ) D.系统复用与系统扩展

8. 单体模式中,两个基本要点(AB)和单体类自己提供单例A .构造函数私有 B.唯一实例

9. 下列模式中,属于行为模式的是( B ) B观察者

10. “不要和陌生人说话”是( D )原则的通俗表述 D.迪米特

1. 软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述活动,也不描述系统怎样开发,它只描述系统的组成元素及其相互的交互协作。

2.一个UML模型只描述了一个系统要做什么,它并没告诉我们系统是怎么做。

3.接口是可以在整个模型中反复使用的一组行为,是一个没有属性而只有方法的类。

4.多重性指的是,某个类有多个对象可以和另一个类的一对象关联。

5.当一个类的对象可以充当多种角色时,自身关联就可能发生。

6.在泛化关系中,子类可以替代父类。后前者出现的可以相同地方。反过来却不成立。

7.最通常的依赖关系是一个类操作的形构中用到了另一个类的定义。

8.组成是强类型的聚集,因为聚集中的每个部分体只能属于一个整体。

软件设计模式JAVA习题答案

软件设计模式JAVA习题答案

软件设计模式(J a v a版)习题

第1章软件设计模式基础

软件设计模式概述

UML中的类图

面向对象的设计原则

一、名词解释

1.一个软件实体应当对扩展开放,对修改关闭,即在不修改源代码的基础上

扩展一个系统的行为。

2.一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。

3.在软件中如果能够使用基类对象,那么一定能够使用其子类对象。

4.是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总

结,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

二、单选择题

1.( A )

2.( A )

3. ( A )

4. ( D )

5.

( D )

6.( A ) 7. ( D ) 8.( D ) 9.( D ) 10.( E )

11.( C ) 12.( C ) 13. ( A )

三、多选择题

1.( A、B、C、D ) 2. ( A、B ) 3.( A、D ) 4.( A、B、C、D ) 四、填空题

1.依赖倒转、迪米特法则、单一职责

2.模式名字、目的、问题、解决方案、效果、实例代码

3.超类、子类

4.开闭

5.用户

6.依赖倒转

7.组合/聚合

8.结构型、行为型

9.依赖倒转

10.开闭

11.需求收集是否正确、体系结构的构建是否合理、测试是否完全

12.人与人之间的交流

13.接口

14.名称、目的、解决方案

15.对象组合、类继承

16.对象组合

17.对象组合、类继承

18.抽象类的指针

五、简答题

1.答:设计模式按类型分为以下三类:

1)创建型设计模式:以灵活的方式创建对象集合,用于管理对象的创建。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工厂系列模式的优缺点:

1.让用户的代码和某个特定类的子类的代码解耦

用户不必知道它所使用的对象是怎样创建的,只需知道该对象有哪些方法

2.抽象工厂模式可以为用户创建一系列相关的对象,使用户和创建这些对象的类脱耦

MVC模式是不是一种设计模式?为什么

MVC不是设计模式,应该是框架/架构模式,因为它的定义是抽象的,没有足够的细节描述使你直接去实现,而只能根据MVC的概念和思想,用几个设计模式组合实现。

举出一个生活中使用装饰者模式的例子,用程序实现思路

举个生活中的例子,俗话说“人在衣着马在鞍”,把这就话用装饰者模式的语境翻译一下,“人通过漂亮的衣服装饰后,男人变帅了,女人变漂亮了;”。对应上面的类图,这里人对应于ConcreteComponent,而漂亮衣服则对应于ConcreteDecorator;

设计模式如何分类,每一个类别都有什么特征?

设计模式分为3类,分别是:创建型模式、行为型模式、结构型模式。

创建型特点:避免用户直接使用new运算符创建对象。

行为型特点:怎样合理的设计对象之间的交互通信,以及怎样合理的为对象分配职

结构型特点:主要用于处理类或对象的组合

Java jdk中使用了哪些设计模式

1.单例

2.静态工厂

3.工厂方法

4.抽象工厂

5.构造者

6.原型

7.适配器8桥接9.组合10.装饰器11.外观12.享元

页脚内容1

14.代理15.迭代器16.观察者17.协调者18.模板方法19.策略20.责任链21.命令22.空对象25.解释器

面向对象的设计原则有哪些?

开闭原则、面向抽象的原则(依赖倒转原则)、多用组合少用继承原则、高内聚-低耦合原则。

观察者模式的推拉有什么不同?使用场景

推,具体主题将变化后的数据全部交给具体观察者。场景:当具体主题认为具体观察者需要这些变换后的数据时,往往采用推数据方式;

拉,具体主题不将变化后的数据交给具体观察者,而是提供获得这些数据的方法。场景:当具体主题不知道具体观察者是否需要这些变换后的数据时,往往采用拉数据的方式。

策略模式和工厂模式有什么不同?

策略模式定义了一系列算法,将他们一个个封装,并且他们之间可以相互替换;

工厂模式定义一个创建对象的接口,让子类决定实例化哪一个类

5观察者模式的推拉有什么不同?适用场景

现在要说的分歧在这里:

“推”的方式是指,Subject维护一份观察者的列表,每当有更新发生,Subject会把更新消息主动推送到各个Observer去。

“拉”的方式是指,各个Observer维护各自所关心的Subject列表,自行决定在合适的时间去Subject获取相应的更新数据。

“推”的好处包括:

页脚内容2

1、高效。如果没有更新发生,不会有任何更新消息推送的动作,即每次消息推送都发生在确确实实的更新事件之后,都是有意义的。

2、实时。事件发生后的第一时间即可触发通知操作。

3、可以由Subject确立通知的时间,可以避开一些繁忙时间。

4、可以表达出不同事件发生的先后顺序。

缺点:精确性较差,不能保证能把信息送到客户器。

“拉”的好处包括:

1、如果观察者众多,Subject来维护订阅者的列表,可能困难,或者臃肿,把订阅关系解脱到Observer 去完成。

2、Observer可以不理会它不关心的变更事件,只需要去获取自己感兴趣的事件即可。

3、Observer可以自行决定获取更新事件的时间。

4、拉的形式可以让Subject更好地控制各个Observer每次查询更新的访问权限。缺点:不能够及时获取系统的变更。

6策略模式和工厂模式有什么不同?

一般情况下,策略模式是为了解决的是策略的切换与扩展,更简洁的说是定义策略族,分别封装起来,让他们之间可以相互替换,策略模式让策略的变化独立于使用策略的客户。可以应用的场景有优惠系统、工资计算系统等。而工厂模式主要解决的是资源的统一分发,将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。主要应用在多数据库选择,类库文件加载等。很明显的是策略模式是开放的,作为一个主体你的活动范围是全程的,大多数事情要你自己亲力亲为。而工厂模式作是封闭的,作为主体的你的活动范围是有限的,很多事情都帮组你做好了,你直接“点”就可以了。

页脚内容3

7装饰者模式和适配器模式的比较

1.关于新职责:适配器也可以在转换时增加新的职责,但主要目的不在此。装饰者模式主要是给被装饰者增加新职责的。

2.关于原接口:适配器模式是用新接口来调用原接口,原接口对新系统是不可见或者说不可用的。装饰者模式原封不动的使用原接口,系统对装饰的对象也通过原接口来完成使用。(增加新接口的装饰者模式可以认为是其变种--“半透明”装饰者)

3.关于其包裹的对象:适配器是知道被适配者的详细情况的(就是那个类或那个接口)。装饰者只知道其接口是什么,至于其具体类型(是基类还是其他派生类)只有在运行期间才知道。

8为什么要用设计模式,设计模式有哪些优点

设计模式的优点:

1、设计模式融合了众多专家的经验,并以标准的形式给广大群众使用,她提供了一中通用的设计词汇,和一种通用的设计语言,以方便开发人员之间开发和交流,使得设计方案更加通俗易懂;

2、设计模式使人们可以方便简单的复用设计模式;

3、设计模式是设计方案易于修改;

4、设计模式的使用将提高软件开发效率与质量,节约成本;

5、设计模式有助于初学者理解面向对象的思想。

页脚内容4

相关文档
最新文档