代理模式
2023年7月31日大约 1 分钟
代理模式
静态代理
静态代理是一种设计模式,它可以在不修改原始类的情况下增强其功能。静态代理的好处有以下几点:
- 它可以实现对目标对象的访问控制,比如说只有满足一定条件的用户才能调用目标对象的方法。
- 它可以实现对目标对象的功能扩展,比如说在目标对象的方法执行前后添加一些额外的逻辑,比如日志、缓存、事务等。
- 它可以实现对目标对象的解耦,比如说将目标对象和调用者分离,使得调用者不需要知道目标对象的具体实现细节。
例如:
使用黄牛代理,帮我买演唱会门票
Human.java
package Thread.StaticProxy;
public interface Human {
void sleep();
void eat();
void lookConcert();
}
Me.java
package Thread.StaticProxy;
public class Me implements Human{
@Override
public void sleep() {
System.out.println("我睡觉");
}
@Override
public void eat() {
System.out.println("我吃饭");
}
@Override
public void lookConcert() {
System.out.println("我看演唱会");
}
}
HuangNiu.java
package Thread.StaticProxy;
public class HuangNiu implements Human{
private Me me;
@Override
public void sleep() {
System.out.println("黄牛替我睡觉");
}
@Override
public void eat() {
System.out.println("黄牛替我吃饭");
}
@Override
public void lookConcert() {
this.bug();
me.lookConcert();
}
public void bug(){
System.out.println("黄牛替我买演唱会门票");
}
}
test.java
package Thread.StaticProxy;
public class test {
public static void main(String[] args) {
HuangNiu huangNiu = new HuangNiu();
huangNiu.lookConcert();
}
}
动态代理
未完待续…