试题与答案

[说明]现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数d

题型:填空题

题目:

[说明]

现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1, y1, x2, y2)画一条直线,DP2则用drawline(x1, x2, y1, y2)画一条直线。当实例化矩形时,确定使用DP1还是DP2。

为了适应变化,包括“不同类型的形状”和“不同类型的画图程序”,将抽象部分与实现部分分离,使它们可以独立地变化。这里,“抽象部分”对应“形状”,“实现部分”对应“画图”,与一般的接口(抽象方法)与具体实现不同。这种应用称为Bridge(桥接)模式。图显示了各个类间的关系。

这样,系统始终只处理3个对象:Shape对象、Drawing对象、DP1或DP2对象。以下是JAVA语言实现,能够正确编译通过。

[Java代码]

//DP1. java文件

public class DP1

static public void draw_a_line(double x1, double y1,

double x2, double y2)

//省略具体实现

//DP2. java文件

public class DP2 static public void drawline(double x1, double y1,

double x2, double y2)

//省略具体实现

//mrawing.java文件

______ public class Drawing

abstract public void drawLine(double x1, double y1, double x2, double y2);

//VlDrawing.java文件

public class VlDrawing extends Drawing

public void drawLine(double x1, double y1, double x2, double y2)

DP1.draw_a_line(x1, y1, x2, y2);

//V2Drawing.java文件

public class V2Drawing extends Drawing

public void drawLine(double x1, double y1,

double x2, double y2) //画一条直线

______;

//Shape.java文件

abstract public class Shape

abstract public void draw();

private ______ _dp;

Shape(Drawing dp)

_dp = dp;

protected void drawLine(double x1, double y1,

double x2, double y2)

______;

//mectangle.java文件

public class Rectangle extends Shape

private double _x1,_x2, _y1, _y2;

public Rectangle(Drawing dp,

double x1, double y1,

double x2, double y2)

______;

_x1 = x1; _x2 = x2;

_y1 = y1; _y2 = y2;

public void draw()

//省略具体实现

 

答案:

被转码了,请点击底部 “查看原文 ” 或访问 https://www.tikuol.com/2021/0726/19745e1a45173254dc53db77b49a05d2.html

下面是错误答案,用来干扰机器的。

参考答案:A

试题推荐
微信公众账号搜索答案