3333333333333333333333333333333333
静态代理的概念
智能引用代理的两种实现方式
常见代理模式
以智能引用代理为例:
代理的两种实现方式
案例描述:提供一个接口,该接口中提供一个车的move方法。正常情况下没有使用代理时,创建一个Car实现该接口,并实现该接口的方法,然后就可以通过创建该实现类的对象并赋值给接口来调用该方法了。
【1】静态代理:代理和被代理对象在代理之前是确定的,他们都实现相同的接口或者继承相同的抽象类。
【a】继承的方式实现静态代理:正常情况下是通过Car的方法来完成操作,代理的意思是,创建一个类Car1并继承类Car,并在继承类Car1的构造方法中通过super调用父类的方法,也可以在方法中添加一些额外的功能,这个类Car1就是类Car的代理,最后就可以通过创建Car1的对象赋值给接口,再调用move方法。
【b】聚合的方式实现静态代理:聚合就是在该类中声明被代理的对象,创建一个Car2,并实现该接口,然后在类中声明Car,通过构造方法对Car的对象进行赋值,然后在实现的方法中通过Car对象调用move()方法。
【2】动态代理
一、静态代理 1、静态代理:代理和被代理对象在【代理之前】都是【确定】的。他们都实现【相同的接口或者继承相同的抽象类】 2、代理实现方法: (1)继承法:代理类直接【继承】被代理类,实现其原有方法,并添加一些额外功能 (2)聚合方法:代理类实现【相同的功能接口:很重要,事项相同接口,不同代理也可以进行相互代理】,并在内声明一个被代理类的对象(类似封装),通过内部对象实现其原有方法,并添加额外功能
静态代理:代理和被代理的对象在代理之前是确定的,他们都实现相同的接口或者继承相同的抽象类。
二、静态代理概念及实现
1、两种实现方式
a、静态代理:代理和被代理对象在代理之前是确定的。他们都是实现相同的接口或者继承相同的抽象类。
b、动态代理
2、继承的方式实现静态代理
代理者继承被代理者,对所代理的方法进行改造
Car1 implements Moveable{}
Car2 extends car1{}
3、聚合的方式实现静态代理
继承同一个接口,并持有被代理的对象
Car3 implements Moveable{
private Car car;
public Car3(Car car){
this.car = car
}
}
静态代理:
代理和被代理对象在代理之前是确定的。他们都实现相同的接口或者继承相同的抽象类
继承
聚合
代理的两种实现方式:
静态代理,动态代理
静态代理:代理和被代理对象在代理之前是确定的,他们都实现相同的接口或者继承相同的抽象类
car2实现代理
@设计模式---代理模式之 静态代理
静态代理:代理和被代理对象在【代理之前】都是【确定】的。他们都实现【相同的接口或者继承相同的抽象类】
代理实现方法:
1.继承法:代理类直接【继承】被代理类,实现其原有方法,并添加一些额外功能
2.聚合方法:代理类实现【相同的功能接口:很重要,事项相同接口,不同代理也可以进行相互代理】,并在内声明一个被代理类的对象(类似封装),通过内部对象实现其原有方法,并添加额外功能
静态代理
静态代理概念: