軟件設(shè)計(jì)師案例分析當(dāng)天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設(shè)計(jì)師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設(shè)計(jì)師案例分析每日一練試題(2022/7/23)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2022/7/23
點(diǎn)擊查看:更多軟件設(shè)計(jì)師習(xí)題與指導(dǎo)
軟件設(shè)計(jì)師案例分析每日一練試題內(nèi)容(2022/7/23)
閱讀下列說明和Java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
欲開發(fā)一個(gè)繪圖軟件,要求使用不同的繪圖程序繪制不同的圖形。以繪制直線和圓形為例,對應(yīng)的繪圖程序如表6-1所示。
該繪圖軟件的擴(kuò)展性要求,將不斷擴(kuò)充新的圖形和新的繪圖程序。為了避免出現(xiàn)類爆炸的情況,現(xiàn)采用橋接(Bridge)模式來實(shí)現(xiàn)上述要求,得到如圖6-1所示的類圖。
圖6-1 類圖
【Java代碼】
(1) Drawing{
(2) ;
(3) ;
}
class DP1{
static public void draw_a_line(double x1, double y1, double x2, double y2) {/*代碼省略*/}
static public void draw_a_circle(double x, double y, double r) {/*代碼省略*/}
}
class DP2{
static public void drawline(double x1, double y1, double x2 ,double y2){/*代碼省略*/}
static public void drawcircle (double x, double y, double r){/*代碼省略*/}
}
class V1Drawing implements Drawing{
public void drawLine(double x1, double y1, double x2 ,double y2){/*代碼省略*/}
public void drawCircle(double x, double y, double r){ (4) ;}
}
class V2Drawing implements Drawing{
public void drawLine(double x1, double y1, double x2 ,double y2){/*代碼省略*/}
public void drawCircle (double x, double y, double r){ (5) ;}
}
abstract class Shape{
private Drawing _dp;
(6) ;
Shape(Drawing dp) {_dp=dp;}
public void drawLine(double x1, double y1, double x2 ,double y2){_dp.drawLine(x1,y1,x2,y2); }
public void drawCircle (double x, double y, double r){ _dp.drawCircle(x,y,r);}
}
class Rectangle extends Shape{
private double _x1,_x2,_y1,_y2;
public Rectangle(Drawing dp,double x1, double y1, double x2 ,double y2) {/*代碼省略*/}
public void draw(){/*代碼省略*/}
}
class Circle extends Shape{
private double _x, _y, _r;
public Circle(Drawing dp,double x, double y, double r) {/*代碼省略*/}
public void draw(){drawCircle(_x,_y,_r);}
}
信管網(wǎng)試題答案與解析:m.xiexiliangjiufa.com/st/3813815424.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
m.xiexiliangjiufa.com/st/3813815424.html