静态代理

2021-01-14  本文已影响0人  LX_代码制造坊

含义

代理类在程序运行前就已经定义好.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;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读