代理:将一个成员对象置于所要构造的类中(就像组合),但与此同时我们在新类中暴漏了该成员对象的所有方法(就像继承);俗称静态代理
示例如下:
public class SpaceShipControls {
void up(int velocity) {}
void down(int velocity) {}
void left(int velocity) {}
void right(int velocity) {}
void forward(int velocity) {}
void back(int velocity) {}
void turboBoost() {}
}
public class SpaceShipDelegation {
private String name;
SpaceShipDelegation(String name){
this.name =name;
}
//持有该对象得引用 具体干活的对象
private SpaceShipControls shipControls = new SpaceShipControls();
//暴漏SpaceShipControls的方法
public void up(int velocity) {
// 可以加上自己的处理
shipControls.up(velocity);
}
public static void main(String... args){
SpaceShipDelegation protector =new SpaceShipDelegation("NSEA Protector");
protector.up(100);
}
}