静态代理—-真实方法和代理方法的名字和参数等相同,方法体不同即可,真实对象和代理对象实现相同的接口
package proxymodel;
//静态代理----真实方法和代理方法的名字和参数等相同,方法体不同即可,真实对象和代理对象实现相同的接口
public class StaticProxy {
public static void main(String[] args) {
realStar realStar = new realStar();
Proxy proxy = new Proxy(realStar);//多态
proxy.confer();//Proxy confer
proxy.signContract();//Proxy signContract
proxy.bookTicket();//Proxy bookTicket
proxy.sing();//realStar sing
proxy.collectMoney();//Proxy collectMoney
}
}
interface Star {
void confer();
void signContract();
void bookTicket();
void sing();
void collectMoney();
}
class realStar implements Star {
@Override
public void confer() {
}
@Override
public void signContract() {
}
@Override
public void bookTicket() {
}
@Override
public void sing() {
System.out.println("realStar sing");
}
@Override
public void collectMoney() {
}
}
class Proxy implements Star {
private Star star;
//传一个被代理类的对象,当代理类无法完成,需要被代理类自己完成时,就用这个传入的对象来调用相应的方法
public Proxy(Star star) {
this.star = star;
}
@Override
public void confer() {
System.out.println("Proxy confer");
}
@Override
public void signContract() {
System.out.println("Proxy signContract");
}
@Override
public void bookTicket() {
System.out.println("Proxy bookTicket");
}
//需要被代理类自己完成的功能,在方法内部用被代理类的对象调用方法
@Override
public void sing() {
star.sing();
}
@Override
public void collectMoney() {
System.out.println("Proxy collectMoney");
}
}
版权声明:本文为qq_42732184原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。