完整word版设计模式期末考试复习

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

《软件建模》考试试题举例

一、判断题)单例类易扩展、易复用。(错1. )2.装饰模式能够动态地为一个对象增加新的职责。(对

二、单项选择题)。简单工厂模式的优点不包括(D 1. 它提供了专门的工厂类用于创建对象,实现了对责任的分割。A.

客户无须知道所创建的具体产品类的类名。B.

产品。“消费”C. 客户可以免除直接创建产品对象的责任,而仅仅工厂角色可以通过继承而得以复用。D.

三、设计词汇与概念配对题将其编号填入对段叙述中选择最贴切的一个叙述,请从后面的9下面列出了5个设计词汇,应词汇后面的括号中。 A ) 1.单一职责(

)依赖倒置(D 2.

就一个类而言,应该仅有一个引起它变化的原因。(单一职责原则) A.

B. 一个软件实体应当对扩展开放,对修改关闭。(开闭原则)

C. 所有引用基类(父类)的地方必须能透明地使用其子类的对象。(里氏代换原则)

D. 要针对接口或抽象类编程,而不是针对具体类编程。(依赖倒置原则)

E. 一个软件实体应当尽可能少的与其他实体发生相互作用。(迪米特法则)

四、软件建模题

1.下图是一间教室的状态转换图,请将图中()处的内容补充完整。

2.请回答以下关于装饰模式的问题。

)下图是装饰模式的设计类图,请补充完整。1

(.

(2)装饰模式中包含哪四种角色?相互之间如何协作?

抽象构件(Component)

具体构件(ConcreteComponent)

抽象装饰类(Decorate)

具体装饰类(ConcreteDecorate)

(3)装饰模式能解决哪一类软件设计问题?

在不影响其他对象的情况下,以动态、透明的方式给一个对象增加额外职责,与继承相比更加灵活,并且能够处理那些可以撤销的职责

五、综合应用题

1. 咖啡店为了进一步满足顾客的口味,允许顾客可以在普通咖啡中自由地加入多种配料(包括加糖、加奶、加冰等)。咖啡店规定:普通咖啡5元一杯,加糖多收1元,加奶多收2元,元。使用装饰模式设计的类图如下所示:1加冰多

收.

(1)若ICoffee接口与Coffee类定义如下,请编写出CoffeeDecorator类的完整代码。public interface ICoffee {

double getPrice();

}

public class Coffee implements ICoffee{

@Override

public double getPrice() {

return 5;

}

}

Public abstract class CoffeeDecorator implements ICoffee{

Private ICoffee coffee;

Public CoffeeDecorator(ICoffee coffee){

This.coffee = coffee;

}

}

(2)以下程序创建一杯加糖加奶咖啡,请补充填写下划线处的Java代码。

public class Client {

public static void main(String[] args) {

ICoffee coffee= new SugerCoffee();

祓瑳浥漮瑵瀮楲瑮湬尨加糖加奶咖啡的价格是:+coffee.getPrice());

}

}

1.UML(图形元素及表示):类图、状态转换图、活动图、顺序图。

2.设计模式(设计图、设计思路、案例、实现代码):装饰模式、适配器模式、单例模式、简单工厂模式。

3.面向对象设计原则(理解内涵)

类图:

类图是用来描述软件系统中类以及类之间的关系的一种图示,是从静态角度表示系统的。

状态转换图:

通过建立对象的生存周期模型来描述对象随时间变化的动态行为(起点终点、状态、事件、转换)

活动图:

显示活动动作及其结果,着重描述操作(方法)实现中所完成的工作以及用例实例或对象中的活动。(活动、动作流、分支与合并、分叉与回合、泳道、组合活动)

顺序图:

顺序图是描述对象之间传送消息的时间顺序,它用来表示用例中的行为顺序,当执行一个用例行为时,顺序图中的每条消息对应了一个类操作中引起转换的触发事件。(对象、生命线、消息).

相关文档
最新文档