软件体系结构与设计模式期末复习.docx

上传人:b****8 文档编号:9429483 上传时间:2023-02-04 格式:DOCX 页数:76 大小:1.22MB
下载 相关 举报
软件体系结构与设计模式期末复习.docx_第1页
第1页 / 共76页
软件体系结构与设计模式期末复习.docx_第2页
第2页 / 共76页
软件体系结构与设计模式期末复习.docx_第3页
第3页 / 共76页
软件体系结构与设计模式期末复习.docx_第4页
第4页 / 共76页
软件体系结构与设计模式期末复习.docx_第5页
第5页 / 共76页
点击查看更多>>
下载资源
资源描述

软件体系结构与设计模式期末复习.docx

《软件体系结构与设计模式期末复习.docx》由会员分享,可在线阅读,更多相关《软件体系结构与设计模式期末复习.docx(76页珍藏版)》请在冰豆网上搜索。

软件体系结构与设计模式期末复习.docx

软件体系结构与设计模式期末复习

选择题

体系结构期末复习

设计模式的基本原理是

A.面向实现编程程

设计模式的两大主题是

(C)

B.面向对象编程

A.系统的维护与开发B.

C.系统架构与系统开发D.

依据设计模式思想,程序开发中应优先使用的是

A.组合聚合B.继承关于继承表述错误的是(D)

C.面向接口编程

D.面向组合编

对象组合与类的继承

系统复用与系统扩展

(A)关系实现复用。

C.创建D..以上都不对

A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。

B.泛化类(超类)可以显式地捕获那些公共的属性和方法。

特殊类(子类)则通过附加属性和方法来进行实现的扩展。

C.破坏了封装性,因为这会将父类的实现细节暴露给子类。

D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。

常用的设计模式可分为(A)

A.创建型、结构型和行为型B.对象型、结构型和行为型

C.过程型、创建型和结构型D.抽象型、接口型和实现型

“不要和陌生人说话”是对(D)设计原则的通俗表述。

A.接口隔离B.里氏代换

在适配器模式中,对象适配器模式是对

A.合成聚合B.里氏代换

将一个类的接口转换成客户希望的另一个接口,

A.策略模式B.桥接模式C.

以下设计模式中属于结构模式的是(D)

A.观察者模式B.单例模式

以下不属于对象行为型模式是(D)

A.命令模式B.策略模式

下面的类图表示的是哪个设计模式(D)

A.抽象工厂模式B.观察者模式

C.依赖倒转

(A)设计原则的典型应用C.依赖倒转这句话是对(适配器模式

D..迪米特法则

D..迪米特法则

C)设计模式的描述

单例模式

D.

C.策略模式

D.外观模式

C.访问者模式

C.策略模式

D.桥接模

D.桥接模式

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

 

 

 

12.

Open-Close开闭原则的含义是一个软件实体(A)

A.策略模式B.装饰模式C.桥接模式D.观察者模式

14•保证一个类仅有一个实例,并提供一个访问它的全局访问点。

这句话是对(D)设计模式

的描述。

A.外观模式B.策略模式C.适配器模式D.单例模式

15.以下意图哪个是用来描述组合模式?

(C)

A.为其他对象提供一种代理以控制对这个对象的访问。

B.运用共享技术有效地支持大量细粒度的对象。

C.将对象组合成树形结构以表示“部分-整体”的层次结构。

D.将一个复杂对象的构建与它的表示分离。

16.以下意图哪个是用来描述命令模式?

(A)

A.将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。

B.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。

C.为其他对象提供一种代理以控制对这个对象的访问。

D.保证一个类仅有一个实例,并提供一个访问它的全局访问点。

17.以下哪种情况不适合使用适配器模式?

(D)

A.你想使用一个已经存在的类,而它的接口不符合你的需求。

B.你想创建一个类,该类可以复用另外一个类的功能。

C•你想创建一个类,该类可以复用另外多个类的功能。

D•你想在类中用相对较少的对象引用取代很多对象的引用。

18.以下意图哪个是用来描述观察者模式?

(B)

A.将抽象部分与它的实现部分分离,使它们都可以独立地变化。

B.定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对

象都得到通知并被自动更新。

C.用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

D.使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。

19.以下意图哪个是用来描述状态模式?

(C)

A.使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。

B.顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。

C.允许一个对象在其内部状态改变时改变它的行为。

看起来似乎修改了它的类。

D.捕获一个对象的内部状态,并在该对象之外保存这个状态。

20.以下意图哪个是用来描述策略模式?

(D)

A.将抽象部分与它的实现部分分离,使它们都可以独立地变化。

B.将一个复杂对象的构建与它的表示分离。

C.将抽象部分与它的实现部分分离,使它们都可以独立地变化。

D.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。

1

2

3

4

5

6

7

8

9

10

C

D

A

D

A

D

A

C

D

D

11

12

13

14

15

16

17

18

19

20

D

A

D

D

C

A

D

B

C

D

1.要依赖于抽象,不要依赖于具体。

即针对接口编程,不要针对实现编程,是(D)

A.开闭原则B.接口隔离原则C里氏代换原则D.依赖倒转原则

2.以下对”开-闭"原则的一些描述错误的是(A)

A."开-闭"原则与"对可变性的封装原则”没有相似性。

B.找到一个系统的可变元素,将它封装起来,叫"开-闭"原则。

C对修改关闭:

是其原则之一。

D.从抽象层导出一个或多个新的具体类可以改变系统的行为,是其原则之一。

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

6.

“知道的越少越好”是对(D)设计原则的通俗表述。

7.在适配器模式中,对象适配器模式是对(A)设计原则的典型应用

A.合成聚合B.里氏代换C.依赖倒转D.•迪米特法则

8.

观察者模式定义了一种(A)的依赖关系

B.装饰模式C.适配器模式D.观察者模式

A.策略模式B.桥接模式C.适配器模式D.单例模式

13.下面的类图表示的是哪个设计模式(C)

A.策略模式

14.下面的类图表示的是哪个设计模式(B)

A.桥接模式B.组合模式C.命令模式D.观察者模式

15.保证一个类仅有一个实例,并提供一个访问它的全局访问点。

这句话是对(D)设计模式

的描述。

A.外观模式B.策略模式C适配器模式D.单例模式

16.以下哪项不是桥接模式的优点?

(C)

A.分离接口及其实现部分。

B.提高可扩充性。

C改变值以指定新对象。

D.实现细节对客户透明。

17.在观察者模式中,表述错误的是?

(C)

A.观察者角色的更新是被动的。

B.被观察者可以通知观察者进行更新。

C观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。

D.以上表述全部错误。

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

A.创建型B.结构型C.行为型D..以上都不对

19.以下意图哪个是用来描述状态模式?

(C)

A.使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。

B.顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。

C.允许一个对象在其内部状态改变时改变它的行为。

看起来似乎修改了它的类。

D.捕获一个对象的内部状态,并在该对象之外保存这个状态。

20.以下意图哪个是用来描述组合模式?

(C)

A.为其他对象提供一种代理以控制对这个对象的访问。

B.运用共享技术有效地支持大量细粒度的对象。

C.将对象组合成树形结构以表示“部分-整体”的层次结构。

D.将一个复杂对象的构建与它的表示分离。

1

2

3

4

5

6

7

8

9

10

D

A

B

C

C

D

A

A

B

C

11

12

13

14

15

16

17

18

19

20

B

C

C

B

D

C

C

A

C

C

1.常用的设计模式可分为(A)

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

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

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

C.过程型、创建型和结构型

2.

“不要和陌生人说话”是对(D)设计原则的通俗表述。

4.将一个类的接口转换成客户希望的另一个接口,这句话是对(

A.策略模式B.桥接模式C.适配器模式D.单例模式

5.

以下设计模式中属于结构模式的是(D)

图1

6.以下意图哪个是用来描述命令模式?

(A)

A.将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。

B.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。

C.为其他对象提供一种代理以控制对这个对象的访问。

D.保证一个类仅有一个实例,并提供一个访问它的全局访问点。

7.下面的类图表示的是哪个设计模式(D)

D.适配器模式

8.Open-Close开闭原则的含义是一个软件实体(A)

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

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

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

D.以上都不对。

9.以下意图哪个是用来描述组合模式?

(C)

A.为其他对象提供一种代理以控制对这个对象的访问。

B.运用共享技术有效地支持大量细粒度的对象。

C.将对象组合成树形结构以表示“部分-整体”的层次结构。

D.将一个复杂对象的构建与它的表示分离。

10.以下意图哪个是用来描述状态模式?

(C)

A.使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。

B.顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。

C.允许一个对象在其内部状态改变时改变它的行为。

看起来似乎修改了它的类。

D.捕获一个对象的内部状态,并在该对象之外保存这个状态。

1

2

3

4

5

6

7

8

9

10

A

D

A

C

D

A

D

A

C

C

(四)

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

A.创建型B.结构型C.行为型D..以上都不对

2.以下对”开-闭"原则的一些描述错误的是(A)

A."开-闭"原则与"对可变性的封装原则”没有相似性。

B.找到一个系统的可变元素,将它封装起来,叫"开-闭"原则。

C对修改关闭:

是其原则之一。

D.从抽象层导出一个或多个新的具体类可以改变系统的行为,是其原则之一。

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

A.继承B.组合聚合C.创建D..以上都不对

4.“知道的越少越好”是对(D)设计原则的通俗表述。

A.接口隔离B.里氏代换C.依赖倒转D.迪米特法则

5.在适配器模式中,对象适配器模式是对(A)设计原则的典型应用

A.合成聚合B.里氏代换C.依赖倒转D..迪米特法则

6.保证一个类仅有一个实例,并提供一个访问它的全局访问点。

这句话是对(D)设计模式

的描述。

A.外观模式B.策略模式

C.适配器模式D.单例模式

7.以下意图哪个是用来描述策略模式?

(D)

A.将抽象部分与它的实现部分分离,使它们都可以独立地变化。

B.将一个复杂对象的构建与它的表示分离。

C.将抽象部分与它的实现部分分离,使它们都可以独立地变化。

D.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。

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

A.组合模式B.适配器模式

C.访问者模式D.桥接模式

A.策略模式B.状态模式

C.适配器模式D.桥接模式

10.以下意图哪个是用来描述状态模式?

(C)

A.使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。

B.顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。

C.允许一个对象在其内部状态改变时改变它的行为。

看起来似乎修改了它的类。

D.捕获一个对象的内部状态,并在该对象之外保存这个状态。

1

2

3

4

5

6

7

8

9

10

A

A

B

D

A

D

D

C

D

C

(五)

1.常用的设计模式可分为(A)

A.创建型、结构型和行为型B.对象型、结构型和行为型

C.过程型、创建型和结构型D.抽象型、接口型和实现型

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

A.接口隔离B.里氏代换C.依赖倒转D.•迪米特法则

3.在适配器模式中,对象适配器模式是对(A)设计原则的典型应用

A.合成聚合B.里氏代换C.依赖倒转D..迪米特法则

A.将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。

B.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。

C.为其他对象提供一种代理以控制对这个对象的访问。

D.保证一个类仅有一个实例,并提供一个访问它的全局访问点。

7.下面的类图表示的是哪个设计模式(D)

A.抽象工厂模式B.桥接模式C.状态模式D.适配器模式

图1

8.Open-Close开闭原则的含义是一个软件实体(A)

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

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

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

D.以上都不对。

9.以下意图哪个是用来描述组合模式?

(C)

A.为其他对象提供一种代理以控制对这个对象的访问。

B.运用共享技术有效地支持大量细粒度的对象。

C.将对象组合成树形结构以表示“部分-整体”的层次结构。

D.将一个复杂对象的构建与它的表示分离。

10.以下意图哪个是用来描述状态模式?

(C)

A.使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。

B.顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。

C.允许一个对象在其内部状态改变时改变它的行为。

看起来似乎修改了它的类。

D.捕获一个对象的内部状态,并在该对象之外保存这个状态。

1

2

3

4

5

6

7

8

9

10

A

D

A

C

D

A

D

A

C

C

、填空题

1•面向对象的七条设计原则包括:

单一职责原则,,,,

合成聚合原则,接口隔离原则以及。

其中外观模式是原则

的典型应用。

2.工厂模式中分为,工厂方法,三种模式。

其中,可以应用平

行等级结构完成创建工作的模式是模式。

3.适配器模式,可以细分为适配器和适配器两种实现。

其中

适配器采用的是继承复用,而适配器采用的是合成聚合复用。

4.JavaAPI中,有两个与观察者模式相关的类和接口,分别是Observable和Observer,

Observer的Update函数中用到的两个参数的参数类型是和。

5.事件体系结构中的三个基本角色包括事件源、中在

编程时一定要将注册添加到事件源中。

6.单例模式有两种方式实现,分别为和。

它们共同的特

征是构造函数的访问属性必须是。

答案:

4、ObservableObject

5、事件事件监听者事件监听者

6、饿汉式懒汉式私有(private)

1.面向对象的七条设计原则包括:

,开闭原则,,依赖倒转原

则,,接口隔离原则以及。

其中外观模式是

原则的典型应用。

2.工厂模式中分为简单工厂,,三种模式。

其中,可以应

用平行等级结构完成创建工作的模式是模式。

3.适配器模式,可以细分为适配器和适配器两种实现。

其中

适配器采用的是继承复用,而适配器采用的是合成聚合复用。

4.JavaAPI中,有两个与观察者模式相关的类和接口,分别是Observable和Observer,Observer

的Update函数中用到的两个参数的参数类型是和。

5.事件体系结构中的三个基本角色包括、和。

6.单例模式有两种方式实现,分别为和。

其中

能够实现类被加载时就同时生成类的实例。

答案:

1、单一职责原则里氏代换原则合成聚合原则迪米特法则迪米特法则

2、工厂方法抽象工厂工厂方法

3、类对象类对象

4、ObservableObject

5、事件源事件事件监听者

6、饿汉式懒汉式饿汉式

1.面向对象的七条设计原则包括:

单一职责原则,,里氏代换原则,

合成聚合原则,接口隔离原则以及。

2.工厂模式中分为简单工厂,和三种模式。

3.JavaAPI中,有两个与观察者模式相关的类和接口,分别是和

4.单例模式有两种方式实现,分别称为和。

它们共同的

特征是构造函数的访问修饰符必须是。

答案:

1、开闭原则、依赖倒转原则、迪米特法则

2、工厂方法、抽象工厂(方法)

3、Observable、Observer

4、懒汉式、饿汉式、private(私有的)

(四)

1.面向对象的七条设计原则包括:

,开闭原则,,依赖倒转原

则,,接口隔离原则以及。

2.适配器模式,可以细分为适配器和适配器两种实现。

其中

适配器采用的是继承复用。

3.能够定义对象间的一种“一对多”的依赖关系,当一个对象的状态改变,所有依赖于它的对象都能得到通知并自动更新的设计模式的名称是。

4.单例模式中能够实现延时加载的方式,称为,实现即时加载的方式称为

答案:

1.单一职责原则、里氏代换原则、合成聚合原则、迪米特法则

2.类、对象、类

3.观察者模式

4.懒汉式、饿汉式

(五)

1.面向对象的七条设计原则包括:

单一职责原则,,里氏代换原则,

,合成聚合原则,接口隔离原则以及。

2.工厂模式中分为简单工厂,和三种模式。

3.适配器模式,可以细分为适配器和适配器两种实现。

4.单例模式有两种方式实现,分别称为和。

它们共同的

特征是构造函数的访问修饰符必须是。

答案:

1.开闭原则、依赖倒转原则、迪米特法则

2.工厂方法、抽象工厂(方法)

3、类、对象

4、懒汉式、饿汉式、private(私有的)

三、判断题

1.开闭原则的关键是抽象化。

2.在软件开发中,如果要实现复用,应尽量较多使用继承,较少使用合成聚合的方式。

3.当一个对象的行为取决于它所处的状态时,这时我们应该使用桥接模式

4.适配器模式是一种创建型设计模式

5.MVC结构中模型和视图之间交互的实现可以基于观察者模式,其中模型是被观察者。

答案:

1.V2.X3.X4.X5.V

1.设计模式的基本原理是面向实现编程。

2.在软件开发中,如果要实现复用,应尽量较多使用继承,较少使用合成聚合的方式。

3.当一个对象的行为取决于它所处的状态时,这时我们应该使用状态模式

4.适配器模式是一种创建型设计模式

5.MVC结构中模型和视图之间交互的实现可以基于观察者模式,其中模型是被观察者。

答案:

1.X2.X3.V4.X5.V

1.开闭原则的关键是抽象化。

2.在软件开发中,如果要实现复用,应尽量较多使用继承,较少使用合成聚合的方式。

3.当一个对象的行为取决于它所处的状态时,这时我们应该使用桥接模式。

4.适配器模式是一种创建型设计模式。

5.命令模式标准类图中的Receiver不是必须存在的。

答案:

1

2

3

4

5

V

X

X

X

V

(四)

1.设计模式的基本原理是面向实现编程。

2.在软件开发中,如果要实现复用,应尽量较多使用继承,较少使用合成聚合的方式。

3.当一个软件需要实现操作可撤销的功能时,我们应该使用命令模式。

4.迭代器模式是一种结构型设计模式。

5.抽象工厂方法完全符合开闭模式。

答案:

1

2

3

4

5

X

X

V

X

X

(五)

1.开闭原则的关键是抽象化。

2.在软件开发中,如果要实现复用,应尽量较多使用继承,较少使用合成聚合的方式。

3.当一个对象的行为取决于它所处的状态时,这时我们应该使用桥接模式。

4.适配器模式是一种创建型设计模式。

5.命令模式标准类图中的Receiver不是必须存在的。

答案:

1

2

3

4

5

V

X

X

X

V

四、简答题

(一)

1•假设系统中有三个类,分别为类A、类B和类C。

在现有的设计中,让类A直接依赖类B,如果要将类A改为依赖类C,必须通过修改类A的代码来达成,请问这样的设计符合开闭原则吗(2分)?

如果符合,请依据开闭原则进行解释,如果不符合请给出重构的方法(3分)。

2•假设某一软件系统中存在类A,B,C,D,E请分别画出使用这些类的中介者模式类图及外观

模式类图。

3•假如系统中存在一组具有相同结构的产品类,如图所示,如果要创建具体产品对象,

应该使用哪一种创建模式?

(2分)

根据给出的类图,绘制出产品等级和产品族的图示。

(3分)

根据产品族图示,绘制工厂类的层次结构图(必须写清类的方法)。

(4分)

答案:

目前的设计不符合开闭原则(2分)

重构问题:

新建接口I,使得类A依赖于接口I而类B和C实现接口I。

(或相同概念的表述)

(3分)

1)应该使用抽象工厂模式(2分)

2)产品等级和产品族的图示(3分)

'产品展

产品并级'"

工厂类图(4分,不对类名和方法名做限制,能够正确表达含义即可)

VV接口A

AbstractFacforv

^makeChipO

-ntakeCPUO

AMDFactorv

1.简述开闭原则、依赖倒转原则的定义。

2.简述策略模式的应用场景(3分),并绘制策略模式的类图(3分)。

3•假如要用软件实现自动茶水销售机的功能,茶水的价格取决于茶的品种和杯子的大小。

请回答以下问题,

1)应该使用哪一种模式?

(2分)

2)请绘制该模式的类图。

(4分)

答案:

1.开闭原则:

一个软件实体,应该对扩展开放,对修改关闭(3分)

依赖倒转原则:

高层模块不应该依赖于低层模块,它们都应该依赖抽象。

(3分)

2.1)策略模式的应用场景:

当解决一个问题,有很多种方法或解决方案可以使用时,可

以将每一种方法或解决方案封装成一个类,可以相互替换(或相同意义表达,3分).

2)类图(3分)

3.1)应该使用桥接模式(2分)

2)类图(4分,不对类名和方法名做限制,能够正确表达含义即可)

TeaSize*ClientTeaGUI

MediumCup

SuperCup

+getPrice()

■^getPriceO

TeaKind

1

i

1

RedTea

i

GreenTe

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1