軟件設計師案例分析當天每日一練試題地址:www.shc2b.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:www.shc2b.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2023/8/22)在線測試:www.shc2b.com/exam/ExamDayAL.aspx?t1=4&day=2023/8/22
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內容(2023/8/22)
閱讀下列說明和Java代碼,將應填入(n)處的字句寫在答題紙的對應欄內。
【說明】
某咖啡店當賣咖啡時,可以根據(jù)顧客的要求在其中加入各種配料,咖啡店會根據(jù)所加入的配料來計算費用。咖啡店所供應的咖啡及配料的種類和價格如下表所示。
咖啡 | 價格/杯 | 配 料 | 價格/份 |
蒸餾咖啡(Espresso) | 25 | 摩卡(Mocha) | 10 |
深度烘焙咖啡(DarkRoast) | 20 | 奶泡(Whip) | 8 |
現(xiàn)采用裝飾器(Decorator)模式來實現(xiàn)計算費用的功能,得到如圖6-1所示的類圖

【Java代碼】
import java.util.*;
(1) class Beverage { //飲料
String description = "Unknown Beverage";
public (2) (){return description;}
public (3) ;
}
abstract class CondimentDecorator extends Beverage { //配料
(4) ;
}
class Espresso extends Beverage { //蒸餾咖啡
private final int ESPRESSO_PRICE = 25;
public Espresso() { description="Espresso"; }
public int cost() { return ESPRESSO_PRICE; }
}
class DarkRoast extends Beverage { //深度烘焙咖啡
private finalint DARKROAST_PRICE = 20;
public DarkRoast0 { description = "DarkRoast"; }
public int cost(){ rcturn DARKROAST PRICE; }
}
class Mocha extends CondimentDecorator { //摩卡
private final int MOCHA_PRICE = 10;
public Mocha(Beverage beverage) {
this.beverage = beverage;
}
public String getDescription() {
return beverage.getDescription0 + ", Mocha";
}
public int cost() {
return MOCHA_PRICE + beverage.cost();
}
}
class Whip extends CondimentDecorator { //奶泡
private finalint WHIP_PRICE = 8;
public Whip(Beverage beverage) { this.beverage = beverage; }
public String getDescription() {
return beverage.getDescription()+", Whip";
}
public int cost() { return WHIP_PRICE + beverage.cost(); }
}
public class Coffee {
public static void main(String args[]) {
Beverage beverage = new DarkRoast();
beverage=new Mocha( (5) );
beverage=new Whip ( (6) ) ;
System.out.println(beverage.getDescription0 +"¥" +beverage.cost());
}
}
編譯運行上述程序,其輸出結果為:
DarkRoast, Mocha, Whip ¥38
信管網試題答案與解析:www.shc2b.com/st/381209990.html
信管網考友試題答案分享:
信管網試題答案與解析:
www.shc2b.com/st/381209990.html