式。Р Р四:问答题(共2题,共25分)Р1. 试举一个例子并设计模板方法模式的UML结构图(15分)。Р2.编写一个类Cal1,实现加、减两种运算,然后,编写另一个派生类Cal2,实现乘、除两种运算。(Р10分)答案:Р选择题:AADCD DAADC DAAADР判断题:×√××√××××√××√××Р简答题:Р答:Р优点包括:Р1. 为项目提供了按阶段划分的检查点。Р2. 当前一阶段完成后,只需要去关注后续阶段。Р3. 可在迭代模型中应用瀑布模型。Р缺点包括:Р1. 只有在项目生命周期的后期才能看到结果。Р2. 在后期发现问题时,反馈可能涉及项目的多个阶段。Р 3. 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。Р答:Р包括过程抽象、数据抽象、规格说明抽象及参数化抽象等。面向对象方法既支持过程抽象,又支持数据抽象。使用者无需知道功能操作符的实现算法和类中数据元素的具体表示方法,就可以通过操作符使用类中的数据。Р答:Р将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们,用户不知道内部的具体构建细节。Р问答题:Р答:模板方法模式一般结构如下图,具体类名可根据实际替换。Р答:Рclass Cal1Р{Р public double nA, nB;Р public double Add()Р {Р return nA + nB;Р }Р public double Sub()Р {Р return nA - nB;Р }Р }Р class Cal2 : Cal1Р {Р public double Mul()Р {Р return nA * nB;Р }Р public double Div()Р {Р return nA / nB;Р }Р}