您的位置:首页 > 编程语言 > Java开发

Java适配器模式的简单应用

2014-02-22 00:13 330 查看
对于刚从工厂生产出来的商品,有些功能并不能完全满足用户的需要。因此,用户通常会对其进行一定的改装工作。编写程序为普通的汽车增加GPS定位功能,借此演示适配器模式的用法。

思路分析:

这个问题的需求是,在主方法中分别设定普通汽车和GPS汽车的车名和速度,并分别输出普通汽车和GPS汽车的信息;

首先需要定义一个父类代表普通汽车,它包括两个成员变量分别表示车名和速度,四个成员方法分别设置及获取车名和速度,并重写toString()方法使得该父类返回一个字符串类型的引用;

定义一个接口,在该接口中定义提供定位功能的方法;

定义一个子类,该子类继承父类并实现接口,包括一个成员方法,该方法利用汽车的速度来确定汽车的位置,并重写toString()方法使得该子类返回一个字符串类型的引用。

代码如下:

public class Car {
private String name;			//表示名称
private double speed;			//表示速度

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public double getSpeed() {
return speed;
}

public void setSpeed(double speed) {
this.speed = speed;
}

@Override
public String toString() {					//重写toString()方法
StringBuilder sb = new StringBuilder();
sb.append("车名:" + name + ", ");
sb.append("速度:" + speed + "千米/小时");
return sb.toString();
}
}
import java.awt.Point;

public interface GPS {
Point getLocation();						//提供定位功能
}
import java.awt.Point;

public class GPSCar extends Car implements GPS {
@Override
public Point getLocation() {						//利用汽车的速度来确定汽车的位置
Point point = new Point();
point.setLocation(super.getSpeed(), super.getSpeed());
return point;
}
@Override
public String toString() {						//重写toString()方法
StringBuilder sb = new StringBuilder();
sb.append(super.toString());
sb.append(", 坐标:(" + getLocation().x + ", " + getLocation().y + ")");
return sb.toString();
}
}
public class Test {
public static void main(String[] args) {
System.out.println("自定义普通的汽车:");
Car car = new Car();
car.setName("Adui");
car.setSpeed(60);
System.out.println(car);
System.out.println("自定义GPS汽车:");
GPSCar gpsCar = new GPSCar();
gpsCar.setName("Audi");
gpsCar.setSpeed(60);
System.out.println(gpsCar);
}
}


  效果如图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: