静态代理在我们的生活中很常见:比如,一个人想要吃一家饭店的牛肉,但是他不直接去,通过美团来点餐,饭店做好后让美团来送,中间配送或者饭菜出了问题就找美团就行了,下面是代码展示:
第一:建立一个接口,代表牛肉类。
package com.beef;
public interface Beef {
public void show();
}
第二:实现牛肉接口的类,只实现它的接口。
package com.beef;
public class Restaurant implements Beef {
@Override
public void show() {
System.out.println("你的牛排已上菜!!!");
}
}
第三:建立一个代理类Person,来进行相关处理
package com.beef;
public class Person implements Beef{
Beef beef;
@Override
public void show() {
try {
System.out.println("买牛肉前,开车去!");
beef.show();
System.out.println("买牛肉后,开车回来!");
}catch (Exception e){
System.out.println("出意外了,被牛弹了一脚!");
}finally {
System.out.println("瘸着腿回来了!");
}
}
public Person (Object obj){
this.beef= (Beef) obj;
}
}
第四:开始测试
package com.beef;
public class Test {
public static void main(String[] args) {
Object obj=new Restaurant();
Beef beef=new Person(new Restaurant());
beef.show();
}
}
结果展示:
买牛肉前,开车去! 你的牛排已上菜!!! 买牛肉后,开车回来! 瘸着腿回来了!



