Car接口
/**
* 一个描述汽车的接口
* @author Administrator
*
*/
public interface Car {
/**
* 轮胎数
*/
public void haveTires();
}
MyCar实现类
public class MyCar implements Car {
@Override
public void haveTires() {
System.out.println("I have four tires!");
}
}
CarProxy代理类
/**
* 代理类,利用构造函数,将MyCar类注入进来,然后调用havetires方法,这边还新增了一个方法
* 即使是再多的类实现Car接口,要加上haveOil方法只需要通过代理类CarProxy,避免了代码的重用性降低
* @author Administrator
*
*/
public class CarProxy implements Car{
private MyCar myCar;
public CarProxy(MyCar myCar){
this.myCar=myCar;
}
@Override
public void haveTires() {
myCar.haveTires();
}
/**
* 是否有油
*/
public void haveOil(){
System.out.println("I have Oil");
}
}
测试类
public class CarMain {
public static void main(String[] args) {
MyCar mycar = new MyCar();
mycar.haveTires();
//如果要使用新增的方法可以用一下调用
CarProxy car = new CarProxy(mycar);
car.haveOil();
//当然也可以直接用carproxy来调用2个方法
}
}