java的代理模式(动态代理和静态代理)

代理模式的基本定义:为其他对象提供一种代理已控制对这个对象的访问,代理祈祷中介的作用,可以去掉功能服务或增加额外的服务。

常见的几种代理模式如图:



下边我们详细介绍智能引用代理



我们通过一个例子了解静态代理和动态代理

静态代理类的实现

创建一个Car接口

public interface Move {
public void run();
}

创建一个Car实体

public class Car implements Move {
public void run() {
System.out.println("汽车行驶中。。。");
}
}

用继承的方式实现静态代理

public class Car1 extends Car {
public void run(){
System.out.println("汽车开始行驶");
super.run();
System.out.println("汽车行驶结束");
}
}

用聚合的方式实现静态代理

public class Car2 implements Move {
private Car car;
public Car2(Car car){
this.car=car;
}
public void run() {
System.out.println("汽车开始行驶");
car.run();
System.out.println("汽车行驶结束");
}
}
 

测试类

public class Test {
public static void main(String arg[]){
//使用继承方法实现静态代理
Move car=new Car1();
car.run();
//使用聚合方式实现静态代理
Car c=new Car();
Move ca=new Car2(c);
ca.run();
}
}

JDK动态代理类的实现


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值