軟件設(shè)計師案例分析當天每日一練試題地址:www.shundajiancai.com/exam/ExamDayAL.aspx?t1=4
往期軟件設(shè)計師每日一練試題匯總:www.shundajiancai.com/class/27/e4_1.html
軟件設(shè)計師案例分析每日一練試題(2022/7/23)在線測試:www.shundajiancai.com/exam/ExamDayAL.aspx?t1=4&day=2022/7/23
點擊查看:更多軟件設(shè)計師習題與指導(dǎo)
軟件設(shè)計師案例分析每日一練試題內(nèi)容(2022/7/23)
閱讀下列說明和Java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
欲開發(fā)一個繪圖軟件,要求使用不同的繪圖程序繪制不同的圖形。以繪制直線和圓形為例,對應(yīng)的繪圖程序如表6-1所示。
 
 該繪圖軟件的擴展性要求,將不斷擴充新的圖形和新的繪圖程序。為了避免出現(xiàn)類爆炸的情況,現(xiàn)采用橋接(Bridge)模式來實現(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)試題答案與解析:www.shundajiancai.com/st/3813815424.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
www.shundajiancai.com/st/3813815424.html