一、代理模式
1.1 概念
是通过代理对象访问目标对象,这样可以在目标对象基础上增强额外的功能,如添加权限,访问控制和审计等功能。
1.2 类图
1.3 涉及到的角色
抽象主题角色
代理主题角色
真实主题角色
二、静态代理
2.1 概念
静态代理中代理类与被代理类都需要实现同一个接口。必须事先知道要代理的类,并且要知道面向那个接口来实现的。在实际开发中,有很多的类需要被代理,并且实现并不能知道要代理那个类,所以继续使用静态代理的话,工作量会增加,效率低,代码复用率不好。
2.2 实现的代码
public interface Court {
public void doCourt();
}
public class Person implements Court{
private String name;
public Person(String name){
this.name = name;
}
public void doCourt() {
System.out.println(name+"说: "+"我并没有违法");
}
}
public class Layer implements Court{
private Person person;
public Layer(Person person){
this.person = person;
}
public void doCourt() {
System.out.println("律师提供了证据,说明张三没有违法");
person.doCourt();
}
}
测试
public class Client {
public static void main(String[] args) {
Court court = new Layer(new Person("张三"));
court.doCourt();
}
}