实验五 适配器模式的应用(Java实现)
一、实验目的
(1)掌握适配器模式(Adapter)的特点
(2)分析具体问题,使用适配器模式进行设计。
二、实验内容和要求
一个软件团队开发绘图系统,设计了圆对象(Circle)、矩形对象(Rectangle),线对象(Line)都支持Draw()函数,即可以通过Draw()函数绘制图形。为了加快项目进度,将角度对象(Angle)绘制功能交给了合作团队实现。但合作团队将角度对象绘制函数定为了DrawAngle()。绘图系统提供给用户后,用户不满意,希望能统一的调用,不用记太多命令。应用适配器模式,用C#或Java、C++控制台应用程序完善该设计。绘制该模式的UML图。
三、源代码
1.Draw 接口
public interface Draw {
void draw();
}
2.Circle 类
public class Circle implements Draw{
@Override
public void draw() {
System.out.println("draw a Circle!");
}
}
3.Rectangle 类
public class Rectangle implements Draw{
@Override
public void draw() {
System.out.println("draw a Rectangle!");
}
}
4.Line 类
public class Line implements Draw{
@Override
public void draw() {
System.out.println("draw a Line!");
}
}
5.Angle类
public class Angle{
public void drawAngle(){
System.out.println("draw an Angle!");
}
}
6.AngleAdapter 类
public class AngleAdapter implements Draw {
private Angle angle;
public AngleAdapter(Angle angle){
this.angle = angle;
}
@Override
public void draw() {
angle.drawAngle();
}
}
7.Test 类
public class Test {
public static void main(String[] args) {
Circle circle = new Circle();
Rectangle rectangle = new Rectangle();
Line line = new Line();
Angle angle = new Angle();
AngleAdapter angleAdapter = new AngleAdapter(angle);
circle.draw();
rectangle.draw();
line.draw();
angleAdapter.draw();
}
}