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

上传人:tbuqq 文档编号:5491897 上传时间:2020-05-23 格式:PDF 页数:49 大小:2.04MB
返回 下载 相关 举报
软件体系结构与设计模式期末复习.pdf_第1页
第1页 / 共49页
软件体系结构与设计模式期末复习.pdf_第2页
第2页 / 共49页
软件体系结构与设计模式期末复习.pdf_第3页
第3页 / 共49页
软件体系结构与设计模式期末复习.pdf_第4页
第4页 / 共49页
软件体系结构与设计模式期末复习.pdf_第5页
第5页 / 共49页
点击查看更多>>
资源描述

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

1、实用标准 文案大全 体系结构期末复习 一、 选择题 (一) 1. 设计模式的基本原理是( C ) A. 面向实现编程 B. 面向对象编程 C. 面向接口编程 D. 面向组合编程 2. 设计模式的两大主题是( D ) A. 系统的维护与开发 B. 对象组合与类的继承 C. 系统架构与系统开发 D. 系统复用与系统扩展 3. 依据设计模式思想,程序开发中应优先使用的是( A ) 关系实现复用。 A. 组合聚合 B. 继承 C. 创建 D. .以上都不对 4. 关于继承表述错误的是( D ) A. 继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。 B. 泛化类(超类)可以显式地捕获那

2、些公共的属性和方法。特殊类(子类)则通过 附加属性和方法来进行实现的扩展。 C. 破坏了封装性,因为这会将父类的实现细节暴露给子类。 D. 继承本质上是“白盒复用”,对父类的修改,不会影响到子类。 5. 常用的设计模式可分为( A ) A. 创建型、结构型和行为型 B. 对象型、结构型和行为型 C. 过程型、创建型和结构型 D. 抽象型、接口型和实现型 6. “不要和陌生人说话”是对 ( D ) 设计原则的通俗表述。 A. 接口隔离 B. 里氏代换C. 依赖倒转 D. .迪米特法则 7. 在适配器模式中,对象适配器模式是对( A ) 设计原则的典型应用 A. 合成聚合 B. 里氏代换C. 依赖

3、倒转 D. .迪米特法则 8. 将一个类的接口转换成客户希望的另一个接口,这句话是对(C)设计模式的描述 A. 策略模式 B. 桥接模式 C. 适配器模式 D. 单例模式 9. 以下设计模式中属于结构模式的是( D ) A. 观察者模式 B. 单例模式 C. 策略模式 D. 外观模式 10. 以下不属于对象行为型模式是( D ) A. 命令模式 B. 策略模式 C. 访问者模式 D. 桥接模式 11. 下面的类图表示的是哪个设计模式( D ) A. 抽象工厂模式 B. 观察者模式 C. 策略模式 D. 桥接模式 实用标准 文案大全 12. Open-Close开闭原则的含义是一个软件实体( A

4、 ) A. 应当对扩展开放,对修改关闭。 B. 应当对修改开放,对扩展关闭。 C. 应当对继承开放,对修改关闭。 D. 以上都不对。 13. 下面的类图表示的是哪个设计模式( D ) A. 策略模式 B. 装饰模式 C. 桥接模式 D. 观察者模式 14. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。这句话是对( D ) 设计模 式的描述。 A. 外观模式 B. 策略模式 C. 适配器模式 D. 单例模式 15. 以下意图哪个是用来描述组合模式?( C ) A. 为其他对象提供一种代理以控制对这个对象的访问。 B. 运用共享技术有效地支持大量细粒度的对象。 C. 将对象组合成树形结构

5、以表示“部分- 整体”的层次结构。 D. 将一个复杂对象的构建与它的表示分离。 16. 以下意图哪个是用来描述命令模式?( A ) A. 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。 B. 定义一系列的算法, 把它们一个个封装起来, 并且使它们可相互替换。 C. 为其他对象提供一种代理以控制对这个对象的访问。 D. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 实用标准 文案大全 17. 以下哪种情况不适合使用适配器模式?( D ) A. 你想使用一个已经存在的类,而它的接口不符合你的需求。 B. 你想创建一个类,该类可以复用另外一个类的功能。 C. 你想创建一

6、个类,该类可以复用另外多个类的功能。 D. 你想在类中用相对较少的对象引用取代很多对象的引用。 18. 以下意图哪个是用来描述观察者模式?( B ) A. 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 B. 定义对象间的一种一对多的依赖关系, 当一个对象的状态发生改变时, 所有依赖于它的 对象都得到通知并被自动更新。 C. 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 D. 使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。 19. 以下意图哪个是用来描述状态模式?( C ) A. 使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关

7、系。 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

8、 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. 依据设计模式思想,程序

9、开发中应优先使用的是( B ) 关系实现复用。 A. 继承 B. 组合聚合 C. 创建 D. .以上都不对 4. 设计模式的两大主题是( C ) A. 系统的维护与开发 B. 对象组合与类的继承 C. 系统复用与系统扩展 D. 系统架构与系统开发 5. 常用的设计模式可分为( C ) A. 过程型、创建型和结构型 B. 对象型、结构型和行为型 C. 创建型、结构型和行为型 D. 抽象型、接口型和实现型 6. “知道的越少越好”是对 ( D ) 设计原则的通俗表述。 A. 接口隔离 B. 里氏代换C. 依赖倒转 D. .迪米特法则 实用标准 文案大全 7. 在适配器模式中,对象适配器模式是对(

10、A ) 设计原则的典型应用 A. 合成聚合 B. 里氏代换C. 依赖倒转 D. .迪米特法则 8. 观察者模式定义了一种( A ) 的依赖关系 A. 一对多 B. 多对多 C. 一对一 D. 以上都不对 9. 以下设计模式中不属于创建型模式的是( B ) A. 工厂模式 B. 外观模式 C. 生成器模式 D. 单例模式 10. 以下不属于结构型模式是( C ) A. 组合模式 B. 适配器模式 C. 访问者模式 D. 桥接模式 11. 以下不属于行为型模式是( B ) A. 迭代器模式 B. 外观模式 C. 状态模式 D. 策略模式 12. 将一个类的接口转换成客户希望的另一个接口,这句话是对

11、(C)设计模式的描述 A. 策略模式 B. 桥接模式 C. 适配器模式 D. 单例模式 13. 下面的类图表示的是哪个设计模式( C ) A. 策略模式 B. 装饰模式 C. 适配器模式 D. 观察者模式 14. 下面的类图表示的是哪个设计模式( B ) A. 桥接模式 B. 组合模式 C. 命令模式 D. 观察者模式 15. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。这句话是对( D ) 设计模 式的描述。 A. 外观模式 B. 策略模式 C. 适配器模式 D. 单例模式 16. 以下哪项不是桥接模式的优点?( C ) A. 分离接口及其实现部分。B. 提高可扩充性。 C. 改变

12、值以指定新对象。D. 实现细节对客户透明。 17. 在观察者模式中,表述错误的是?( C ) A. 观察者角色的更新是被动的。 B. 被观察者可以通知观察者进行更新。 C. 观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状 态进行。 D. 以上表述全部错误。 实用标准 文案大全 18. 当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( A ) 模式 A. 创建型 B. 结构型 C. 行为型 D. .以上都不对 19. 以下意图哪个是用来描述状态模式?( C ) A. 使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。 B. 顺序访问一个聚

13、合对象中各个元素, 而又不需暴露该对象的内部表示。 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

14、 B D C C A C C (三) 1. 常用的设计模式可分为( A ) A. 创建型、结构型和行为型 B. 对象型、结构型和行为型 C. 过程型、创建型和结构型 D. 抽象型、接口型和实现型 2. “不要和陌生人说话”是对 ( D ) 设计原则的通俗表述。 A. 接口隔离 B. 里氏代换C. 依赖倒转 D. .迪米特法则 3. 在适配器模式中,对象适配器模式是对( A ) 设计原则的典型应用 A. 合成聚合 B. 里氏代换C. 依赖倒转 D. .迪米特法则 4. 将一个类的接口转换成客户希望的另一个接口,这句话是对(C)设计模式的描述 A. 策略模式 B. 桥接模式 C. 适配器模式 D.

15、 单例模式 5. 以下设计模式中属于结构模式的是( D ) A. 观察者模式 B. 单例模式C. 迭代器模式 D. 适配器模式 6. 以下意图哪个是用来描述命令模式?( A ) A. 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。 B. 定义一系列的算法, 把它们一个个封装起来, 并且使它们可相互替换。 C. 为其他对象提供一种代理以控制对这个对象的访问。 D. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 7. 下面的类图表示的是哪个设计模式( D ) A. 抽象工厂模式 B. 桥接模式 C. 状态模式 D. 适配器模式 图 1 实用标准 文案大全 8. Ope

16、n-Close开闭原则的含义是一个软件实体( A ) A. 应当对扩展开放,对修改关闭。 B. 应当对修改开放,对扩展关闭。 C. 应当对继承开放,对修改关闭。 D. 以上都不对。 9. 以下意图哪个是用来描述组合模式?( C ) A. 为其他对象提供一种代理以控制对这个对象的访问。 B. 运用共享技术有效地支持大量细粒度的对象。 C. 将对象组合成树形结构以表示“部分- 整体”的层次结构。 D. 将一个复杂对象的构建与它的表示分离。 10. 以下意图哪个是用来描述状态模式?( C ) A. 使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。 B. 顺序访问一个聚合对象中各个

17、元素, 而又不需暴露该对象的内部表示。 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. 找到一个系统的可变元素, 将它封装起来 , 叫“ 开-

18、闭“原则。 C. 对修改关闭 : 是其原则之一。 D. 从抽象层导出一个或多个新的具体类可以改变系统的行为, 是其原则之一。 3. 依据设计模式思想,程序开发中应优先使用的是( B ) 关系实现复用。 A. 继承 B. 组合聚合 C. 创建 D. .以上都不对 4. “知道的越少越好”是对 ( D ) 设计原则的通俗表述。 A. 接口隔离 B. 里氏代换C. 依赖倒转 D. .迪米特法则 5. 在适配器模式中,对象适配器模式是对( A ) 设计原则的典型应用 A. 合成聚合 B. 里氏代换C. 依赖倒转 D. .迪米特法则 6. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。这句话是对

19、( D ) 设计模式 的描述。 A. 外观模式 B. 策略模式 C. 适配器模式 D. 单例模式 7. 以下意图哪个是用来描述策略模式?( D ) A. 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 B. 将一个复杂对象的构建与它的表示分离。 C. 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 D. 定义一系列的算法, 把它们一个个封装起来, 并且使它们可相互替换。 8. 以下不属于结构型模式是( C ) A. 组合模式 B. 适配器模式 C. 访问者模式 D. 桥接模式 实用标准 文案大全 9. 下面的类图表示的是哪个设计模式( D ) A. 策略模式 B. 状态模式 C

20、. 适配器模式 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. 抽象型、

21、接口型和实现型 2. “不要和陌生人说话”是对 ( D ) 设计原则的通俗表述。 A. 接口隔离 B. 里氏代换C. 依赖倒转 D. .迪米特法则 3. 在适配器模式中,对象适配器模式是对( A ) 设计原则的典型应用 A. 合成聚合 B. 里氏代换C. 依赖倒转 D. .迪米特法则 4. 将一个类的接口转换成客户希望的另一个接口,这句话是对(C)设计模式的描述 A. 策略模式 B. 桥接模式 C. 适配器模式 D. 单例模式 5. 以下设计模式中属于结构模式的是( D ) A. 观察者模式 B. 单例模式C. 迭代器模式 D. 适配器模式 6. 以下意图哪个是用来描述命令模式?( A ) A

22、. 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。 B. 定义一系列的算法, 把它们一个个封装起来, 并且使它们可相互替换。 C. 为其他对象提供一种代理以控制对这个对象的访问。 D. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 7. 下面的类图表示的是哪个设计模式( D ) A. 抽象工厂模式 B. 桥接模式 C. 状态模式 D. 适配器模式 实用标准 文案大全 图 1 8. Open-Close开闭原则的含义是一个软件实体( A ) A. 应当对扩展开放,对修改关闭。 B. 应当对修改开放,对扩展关闭。 C. 应当对继承开放,对修改关闭。 D. 以上都不对。

23、 9. 以下意图哪个是用来描述组合模式?( C ) A. 为其他对象提供一种代理以控制对这个对象的访问。 B. 运用共享技术有效地支持大量细粒度的对象。 C. 将对象组合成树形结构以表示“部分- 整体”的层次结构。 D. 将一个复杂对象的构建与它的表示分离。 10. 以下意图哪个是用来描述状态模式?( C ) A. 使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。 B. 顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。 C. 允许一个对象在其内部状态改变时改变它的行为。看起来似乎修改了它的类。 D. 捕获一个对象的内部状态,并在该对象之外保存这个状态。 1

24、2 3 4 5 6 7 8 9 10 A D A C D A D A C C 二、 填空题 (一) 1. 面向对象的七条设计原则包括:单一职责原则, _,_,_, 合成聚合原则, 接口隔离原则以及_ 。其中外观模式是_原则 的典型应用。 2. 工厂模式中分为_, 工厂方法 ,_ 三种模式。其中,可以应用 平行等级结构完成创建工作的模式是_模式。 3. 适配器模式,可以细分为_适配器和_适配器两种实现。其中 _适配器采用的是继承复用,而_适配器采用的是合成聚合复用。 4. Java API中,有两个与观察者模式相关的类和接口,分别是Observable和 Observer , Observer

25、的 Update 函数中用到的两个参数的参数类型是_和_。 5. 事件体系结构中的三个基本角色包括事件源、_和_。其中在 编程时一定要将_注册添加到事件源中。 6. 单例模式有两种方式实现,分别为_和_。它们共同的特 征是构造函数的访问属性必须是_。 答案: 实用标准 文案大全 1、开闭原则里氏代换原则依赖倒转原则迪米特法则迪米特法则 2、简单工厂抽象工厂工厂方法 3、类对象类对象 4、Observable Object 5、事件事件监听者事件监听者 6、饿汉式懒汉式私有 (private) (二) 1. 面向对象的七条设计原则包括:_,开闭原则, _,依赖倒转原 则,_, 接口隔离原则以及_

26、 。 其中外观模式是_ 原则的典型应用。 2. 工厂模式中分为简单工厂,_,_三种模式。 其中,可以应 用平行等级结构完成创建工作的模式是_模式。 3. 适配器模式,可以细分为_适配器和_适配器两种实现。其中 _适配器采用的是继承复用,而_适配器采用的是合成聚合复用。 4. Java API中,有两个与观察者模式相关的类和接口,分别是Observable和 Observer , Observer 的 Update 函数中用到的两个参数的参数类型是_和_。 5. 事件体系结构中的三个基本角色包括_、_和_。 6. 单例模式有两种方式实现,分别为_和_。其中 _ 能够实现类被加载时就同时生成类的实

27、例。 答案: 1、单一职责原则里氏代换原则合成聚合原则迪米特法则迪米特法则 2、工厂方法抽象工厂工厂方法 3、类对象类对象 4、Observable Object 5、事件源事件事件监听者 6、饿汉式懒汉式饿汉式 (三) 1. 面向对象的七条设计原则包括:单一职责原则,_,里氏代换原则, _,合成聚合原则,接口隔离原则以及_ 。 2. 工厂模式中分为简单工厂,_ 和 _三种模式。 3. Java API 中 , 有 两 个 与 观 察 者 模 式 相 关 的 类 和 接 口 , 分 别 是 _ 和 _。 4. 单例模式有两种方式实现,分别称为_和 _。它们共同的 特征是构造函数的访问修饰符必须

28、是_。 答案: 1、开闭原则、 依赖倒转原则、 迪米特法则 2、工厂方法、 抽象工厂(方法) 3、Observable 、 Observer 实用标准 文案大全 4、懒汉式、 饿汉式、 private(私有的) (四) 1. 面向对象的七条设计原则包括:_,开闭原则, _,依赖倒转原 则, _,接口隔离原则以及_ 。 2. 适配器模式,可以细分为_适配器和_适配器两种实现。其中 _适配器采用的是继承复用。 3. 能够定义对象间的一种“一对多”的依赖关系,当一个对象的状态改变,所有依赖于它 的对象都能得到通知并自动更新的设计模式的名称是_。 4. 单例模式中能够实现延时加载的方式,称为_, 实现

29、即时加载的方式称为 _。 答案: 1.单一职责原则、 里氏代换原则、 合成聚合原则、迪米特法则 2.类、对象、类 3. 观察者模式 4. 懒汉式、 饿汉式 (五) 1. 面向对象的七条设计原则包括:单一职责原则,_,里氏代换原则, _,合成聚合原则,接口隔离原则以及_ 。 2. 工厂模式中分为简单工厂,_ 和 _三种模式。 3. 适配器模式,可以细分为_适配器和 _适配器两种实现。 4. 单例模式有两种方式实现,分别称为_和 _。它们共同的 特征是构造函数的访问修饰符必须是_。 答案: 1.开闭原则、 依赖倒转原则、 迪米特法则 2.工厂方法、 抽象工厂(方法) 3、类、对象 4、懒汉式、 饿

30、汉式、 private(私有的) 三、 判断题 实用标准 文案大全 (一) 1. 开闭原则的关键是抽象化。 2. 在软件开发中,如果要实现复用,应尽量较多使用继承,较少使用合成聚合的方式。 3. 当一个对象的行为取决于它所处的状态时,这时我们应该使用桥接模式 4. 适配器模式是一种创建型设计模式 5. MVC 结构中模型和视图之间交互的实现可以基于观察者模式,其中模型是被观察者。 答案:1. 2. 3. 4. 5. (二) 1. 设计模式的基本原理是面向实现编程。 2. 在软件开发中,如果要实现复用,应尽量较多使用继承,较少使用合成聚合的方式。 3. 当一个对象的行为取决于它所处的状态时,这时

31、我们应该使用状态模式 4. 适配器模式是一种创建型设计模式 5. MVC 结构中模型和视图之间交互的实现可以基于观察者模式,其中模型是被观察者。 答案:1. 2. 3. 4. 5. (三) 1. 开闭原则的关键是抽象化。 2. 在软件开发中,如果要实现复用,应尽量较多使用继承,较少使用合成聚合的方式。 3. 当一个对象的行为取决于它所处的状态时,这时我们应该使用桥接模式。 4. 适配器模式是一种创建型设计模式。 5. 命令模式标准类图中的Receiver不是必须存在的。 答案: 1 2 3 4 5 (四) 1. 设计模式的基本原理是面向实现编程。 2. 在软件开发中,如果要实现复用,应尽量较多

32、使用继承,较少使用合成聚合的方式。 3. 当一个软件需要实现操作可撤销的功能时,我们应该使用命令模式。 4. 迭代器模式是一种结构型设计模式。 5. 抽象工厂方法完全符合开闭模式。 答案: 1 2 3 4 5 (五) 1. 开闭原则的关键是抽象化。 2. 在软件开发中,如果要实现复用,应尽量较多使用继承,较少使用合成聚合的方式。 实用标准 文案大全 3. 当一个对象的行为取决于它所处的状态时,这时我们应该使用桥接模式。 4. 适配器模式是一种创建型设计模式。 5. 命令模式标准类图中的Receiver不是必须存在的。 答案: 1 2 3 4 5 四、 简答题 ( 一) 1. 假设系统中有三个类

33、,分别为类A、 类 B和类 C。 在现有的设计中, 让类 A直接依赖类B, 如果要将类A改为依赖类C,必须通过修改类A的代码来达成,请问这样的设计符合开闭原 则吗(2 分)?如果符合, 请依据开闭原则进行解释,如果不符合请给出重构的方法(3 分) 。 2. 假设某一软件系统中存在类A,B,C,D,E 。请分别画出使用这些类的中介者模式类图及外 观模式类图。 3. 假如系统中存在一组具有相同结构的产品类,如图所示,如果要创建具体产品对象, 应该使用哪一种创建模式?(2 分) 根据给出的类图,绘制出产品等级和产品族的图示。(3 分) 根据产品族图示,绘制工厂类的层次结构图(必须写清类的方法)。 (

34、4 分) 答案: 目前的设计不符合开闭原则(2 分) 重构问题:新建接口I ,使得类A依赖于接口I , 而类 B和 C实现接口I 。 (或相同概念的表 述) (3 分) 中介者模式类图(4 分)外观模式类图(4 分) 实用标准 文案大全 1)应该使用抽象工厂模式(2 分) 2)产品等级和产品族的图示(3 分) 工厂类图( 4 分, 不对类名和方法名做限制,能够正确表达含义即可) (二) 1. 简述开闭原则、依赖倒转原则的定义。 2. 简述策略模式的应用场景(3 分) ,并绘制策略模式的类图(3 分) 。 3. 假如要用软件实现自动茶水销售机的功能,茶水的价格取决于茶的品种和杯子的大小。 请回答

35、以下问题, 1)应该使用哪一种模式?(2 分) 2)请绘制该模式的类图。 (4 分) 答案: 1.开闭原则:一个软件实体,应该对扩展开放,对修改关闭(3 分) 依赖倒转原则:高层模块不应该依赖于低层模块,它们都应该依赖抽象。(3 分) 2.1)策略模式的应用场景:当解决一个问题,有很多种方法或解决方案可以使用时,可 以将每一种方法或解决方案封装成一个类,可以相互替换(或相同意义表达,3 分 ). 2) 类图( 3 分) strategy Context - strategy: Strategy + algorithm () . Strategy abstract + algorithm ()

36、. ConcreteStrategyA + algorithm () . ConcreteStrategyB + algorithm () . strategy.algorithm(); 实用标准 文案大全 3. 1 )应该使用桥接模式(2 分) 2) 类图 (4 分,不对类名和方法名做限制,能够正确表达含义即可) (三) 1. 简述依赖倒转原则的定义。 2. 假如系统中存在一组具有相同结构的产品类,如图所示,如果要创建具体产品对象, 1)应该使用哪一种创建模式?(2 分) 2)根据给出的类图,绘制出产品等级和产品族的图示。(4 分) 3) 根据产品族图示,绘制工厂类的层次结构图(必须写清类的

37、方法)。 (4 分) 答案: 实用标准 文案大全 1. 高层模块不应该依赖低层模块,它们都应该依赖抽象(3分)。抽象不应该依赖于细节, 细节应该依赖于抽象(3 分)。 2.1 )应该使用抽象工厂模式(2 分) 2 )产品等级和产品族的图示(4 分) 3) 类图( 4 分 , 不对类名和方法名做限制,能够正确表达含义即可) 五、 程序设计题 (一) 1. 现在需要开发一款游戏软件,请以单例模式来设计其中的Boss 角色。 角色的属性和动作 可以任意设计。要求:该Boss 类可以在多线程中使用。(8 分) 2. 一个农场公司,专门负责培育各种水果,有葡萄,草莓和苹果,请使用工厂方法,编写 工厂类和

38、主程序,并在主程序中来完成草莓生长状态的描述。(8 分) 3. 给定如图所示的树形结构,请应用组合模式, 在客户端完成数据的展示。具体要求如下: 绘制组合模式的类图。 (4 分) 编写简单元素和复杂元素的代码。(4 分) 实用标准 文案大全 1)在客户端构造出树形数据并输出。(4 分) 提示:程序运行后,输出信息应为 Root Leaf A Comp B Leaf BX Leaf BY Leaf C 答案: 1. Public class Boss Private static Boss instance; /(2 分) Private Boss() /(2分) Public static B

39、oss getInstance() /(2 分) If(instance = null) Synchronized(Boss.Class) /(synchronized关键字, 2 分) If(instance = null) Instance = new Boss(); return instance; 或者 Public class Boss Private static Boss instance = new Boss();/(4分) Private Boss()/(2 分) Public static Boss getInstance()/2分 Return instance; 2.

40、Public interface Factory Fruit build(); Public class AppleFactory implements Factory Public Fruit build() Return new Apple(); Public class GrapeFactory implements Factory Public Fruit build() Return new Grape(); 实用标准 文案大全 Public class StrawberryFactory implements Factory Public Fruit build() Return

41、new Strawberry(); Public class MainUI Public static void main(string str) Factory fac = new StrawberryFactory(); Fruit ft = fac.build(); ft.plant(); Ft.grow(); Ft.harvest(); 3. 1)类图,类名不限,但必须将抽象的概念,以及 Composite 和 Component 之间的关系用正 确的连线表示。 (4 分) 2)简单元素、复杂元素(4分) : class Leaf implements Component String

42、 name; public Leaf(String name)this.name = name; public void display() System.out.println( name); public void add(Component c) public void remove(Component c) class Composite implements Component String name; ArrayList list = new ArrayList(); 实用标准 文案大全 public Composite(String name) this.name = name;

43、 public void display() System.out.println(name); for(int i = 0 ; i list = new ArrayList(); public Composite(String name) this.name = name; 实用标准 文案大全 public void display() System.out.println(name); for(int i = 0 ; i list = new ArrayList(); public Composite(String name) this.name = name; public void d

44、isplay() System.out.println(name); for(int i = 0 ; i list=new ArrayList(); publicvoid add(Child c) list.add(c); publicvoid remove(Child c) list.remove(c); publicvoid accept(Visitor v) for (Child c:list) c.Accept(v); 主类 publicclass Client publicstaticvoid main(String args) ObjectStructure o=new Objec

45、tStructure(); o.add( new Chinachild(); 实用标准 文案大全 o.add( new USAchild(); HeightVisitor h=new HeightVisitor(); WeightVisitor w=new WeightVisitor(); o.accept(h); o.accept(w); 观察者模式: 对象间的一种 1对n的依赖关系, 当一个对象的状态发生 变化时,所有依赖于它的随想得到通知被更新。 Observer类(观察者) publicinterface Observer publicvoid update(Subject obj); Subject 类(被观察者) publicabstractclass Subject private ArrayList list=new ArrayList(); publ

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1