java适配器模式应用_java笔记--适配器模式的运用
適配器模式的運用
主要應用:
可以在符合OCP原則(開筆原則)的基礎上,為類增加新的功能。
在現有功能上添加新的功能時無須修改原有功能代碼。
主要角色:
目標角色:就是期待得到的接口,如給汽車添加GPS的接口;
源角色:需要被增加功能的類或接口,如汽車類
適配器角色:新創建的類,在源角色的基礎上實現了目標角色,如已經成功添加了GPS的汽車類
例子:
為汽車添加GPS功能
1.建立目標角色——添加GPS的接口
/**
* 定義GPS接口
*
* @author XIEHEJUN
*
*/
public interface GPS {
public Point getLocation();
}
2.建立源角色——汽車類
/**
* 汽車實體類
*
* @author XIEHEJUN
*
*/
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() {
StringBuilder sbd =new StringBuilder();
sbd.append("車主名稱為:"+name+" ");
sbd.append("車速為:"+speed+" ");
return sbd.toString();
}
}
3.適配器角色——為汽車添加GPS的類
/**
* 為汽車添加GPS
*
* @author XIEHEJUN
*
*/
public class CarAddGPS extends Car implements GPS {
@Override
public Point getLocation() {
Point point = new Point();
point.setLocation(super.getSpeed(), super.getSpeed());
return point;
}
@Override
public String toString() {
StringBuilder sbd = new StringBuilder();
sbd.append(super.toString());
sbd.append(",坐標為(" + getLocation().x + "," + getLocation().y + ")");
return sbd.toString();
}
}
4.測試適配器類——main函數
public static void main(String[] args) {
System.out.println("************創建普通汽車類**********");
Car car = new Car();
car.setName("李宏");
car.setSpeed(60);
System.out.println(car);
System.out.println("************創建帶有GPS的汽車類*******");
CarAddGPS carGps = new CarAddGPS();
carGps.setName("李小華");
carGps.setSpeed(60);
System.out.println(carGps);
}
原文:http://www.cnblogs.com/XHJT/p/3884785.html
總結
以上是生活随笔為你收集整理的java适配器模式应用_java笔记--适配器模式的运用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息称 R 星游戏《荒野大镖客:救赎》P
- 下一篇: 阿维塔 11 鸿蒙版车型 8 月 24