[说明] 某绘图系统中有两个画矩形的程序DP1和DP2。程序DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,程序DP2则用函数drawline(x1,x2,y1,y2)画一条直线。当实例化矩形时,确定使用DP1还是DP2。为了适应变化,包括“不同类型的形状”和“不同类型的画图程序”,将抽象部分与实现部分分离,使它们可以独立地变化。若将“抽象部分”对应“形状”,“实现部分”对应“画图”,与一般的接口(抽象方法)和具体实现不同,则将这种应用称为Bridge(桥接)模式。图8-10显示了该系统与矩形绘制相关的各个类之间的关系。系统始终只处理3个对象:Shape对象、Drawing对象,以及DP1或DP2对象。以下是Java语言实现,能够正确编译通过。
[Java代码] //DP1.jav__件 public class DP1 static public void draw a line(double x1,double y1,double x2,double y2) ... //省略具体实现 //DP2.jav__件 public class DP2 static public void drawline(double x1,double y1,double x2,double y2) ... //省略具体实现 //Drawing. jav__件 abstract public class Drawing (1) public void drawLine(double x1,double y1,double x2,double y2); //V1Drawing.jav__件 public class V1Drawing extends Drawing public void drawLine(double x1,double y1,double x2,double y2) DP1.draw a line(x1,y1,x2,y2); //V2Drawing.jav__件 public class V2Drawing extends Drawing public void drawLine(double x1,double y1,double x2,double y2) //画一条直线 (2) ; //Shape.jav__件 abstract public class Shape( abstract public void draw( ); private (3) dp; Shape(Drawing dp) _dp=dp; protected void drawLine(double x1,double y1,double x2, double y2) (4) ; //Rectangle.jav__件 public class Rectangle (5) private double _x1,_x2,_y1,_ y2; public Rectangle(Drawing dp, double x1,double y1, double x2,double y2) (6) ; _x1=x2; _x2=x2; _y1=y1; _y2=y2; public void draw( ) … //省略具体实现
题库:初级程序员
类型:填空题
时间:2021-07-10 11:18:10
免费下载:《填空》Word试卷
[说明] 某绘图系统中有两个画矩形的程序DP1和DP2。程序DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,程序DP2则用函数drawline(x1,x2,y1,y2)画一条直线。当实例化矩形时,确定使用DP1还是DP2。为了适应变化,包括“不同类型的形状”和“不同类型的画图程序”,将抽象部分与实现部分分离,使它们可以独立地变化。若将“抽象部分”对应“形状”,“实现部分”对应“画图”,与一般的接口(抽象方法)和具体实现不同,则将这种应用称为Bridge(桥接)模式。图8-10显示了该系统与矩形绘制相关的各个类之间的关系。系统始终只处理3个对象:Shape对象、Drawing对象,以及DP1或DP2对象。以下是Java语言实现,能够正确编译通过。
[Java代码] //DP1.jav__件 public class DP1 static public void draw a line(double x1,double y1,double x2,double y2) ... //省略具体实现 //DP2.jav__件 public class DP2 static public void drawline(double x1,double y1,double x2,double y2) ... //省略具体实现 //Drawing. jav__件 abstract public class Drawing (1) public void drawLine(double x1,double y1,double x2,double y2); //V1Drawing.jav__件 public class V1Drawing extends Drawing public void drawLine(double x1,double y1,double x2,double y2) DP1.draw a line(x1,y1,x2,y2); //V2Drawing.jav__件 public class V2Drawing extends Drawing public void drawLine(double x1,double y1,double x2,double y2) //画一条直线 (2) ; //Shape.jav__件 abstract public class Shape( abstract public void draw( ); private (3) dp; Shape(Drawing dp) _dp=dp; protected void drawLine(double x1,double y1,double x2, double y2) (4) ; //Rectangle.jav__件 public class Rectangle (5) private double _x1,_x2,_y1,_ y2; public Rectangle(Drawing dp, double x1,double y1, double x2,double y2) (6) ; _x1=x2; _x2=x2; _y1=y1; _y2=y2; public void draw( ) … //省略具体实现
本题关键词:程序调节系统,程序,统计工作程序,工程施工程序,复苏程序,工作程序,建设程序,程序变更,程序冲突,点火程序;