首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

java代理模式有几种?

2024-07-17 来源:花图问答

出于某些原因,需要为某个对象提供代理,以便控制对该对象的访问,此时,该对象不适合访问或无法直接引用目标对象,而代理对象则充当了访问对象与目标对象之间的中介。

1、分类

Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理类在编译期就生成,而动态代理类则是在Java运行时动态生成,动态代理又有JDK代理和CGLib代理两种。

2、代理实例

public class HelloWorld {
    public static void main(String[] args) {
        ProxyPoint pp = new ProxyPoint();
        pp.sell();
    }
}
 
// 卖票接口
interface SellTickets {
    void sell();
}
 
// 火车站:火车站具有卖票功能,所以需要实现SellTickets接口
class TrainStation implements SellTickets {
    @Override
    public void sell() {
        System.out.println("火车站卖票");
    }
}
 
// 代售点
class ProxyPoint implements SellTickets {
    private TrainStation station = new TrainStation();
    
    @Override
    public void sell() {
        System.out.println("代售点收起一些服务费用");
        station.sell();
    }
}

以上就是java代理的2大模式,希望能对大家有所帮助。

显示全文