含义
代理类在程序运行前就已经定义好.java 源文件,其与目标类的关系在程序运行前就已经确立。在程序运行前代理类已经编译为.class 文件。
实现
public class StaticMain {
public static void main(String[] args) {
/**
* 静态代理缺点:
* 1、目标类和代理类都实现同一个接口;
* 2、代理类中都调用了目标类的方法,代码大量重复
* 3、如果接口新增一个方法,所有的代理类和目标类都需要增加这个方法
*/
Taobao taobao = new Taobao();
System.out.println(taobao.sell());
Ws ws = new Ws();
System.out.println(ws.sell());
}
}
interface USB{
int sell();
}
//目标类
class Factory implements USB{
@Override
public int sell() {
return 100;
}
}
//代理类
class Taobao implements USB{
Factory factory = new Factory();
@Override
public int sell() {
return factory.sell()+100;
}
}
//代理类
class Ws implements USB{
Factory factory = new Factory();
@Override
public int sell() {
return factory.sell()+200;
}
}
网友评论