静态代理

发布时间 2023-11-30 16:27:20作者: 领着小丫闯江湖

静态代理是由程序员自己编码实现(工具自动生成),再编译成class文件。

组合方式代理:

//定义服务层业务接口
public interface Service {
    //做事情
    void doSamthing();
}

//目标对象
public class NongMinGong implements Service {
 
    @Override
    public void doSamthing() {
        System.out.println("农民工在搬砖...");
    }
}

//代理对象
public class Agent implements Service { 
    public Service target; //目标对象
    //2.方法的形参设计为接口
    public Agent(Service target) { //传入目标对象
        this.target = target;
    }
    @Override
    public void doSamthing() {
        System.out.println("要求戴帽子...");
        target.doSamthing();
        //NongMinGong target= new NongMinGong();
        System.out.println("统计数量发工资...");
    }
}
public static void main(String[] args) {
  
Service service = new Agent(new NongMinGong());
   service.doSamthing();   
 }

 

继承方式代理:

 1 //定义服务层业务接口
 2 public interface Service {
 3     //做事情
 4     void doSamthing();
 5 }
 6 
 7 //目标对象
 8 public class NongMinGong implements Service {
 9  
10     @Override
11     public void doSamthing() {
12         System.out.println("农民工在搬砖...");
13     }
14 }
15 
16 //代理对象
17 public class Agent implements NongMinGong { 
18     @Override
19     public void doSamthing() {
20         System.out.println("要求戴帽子...");
21         supper.doSamthing();
22         System.out.println("统计数量发工资...");
23     }
24 }
25 public static void main(String[] args) {
26    Service service = new Agent();
27    service.doSamthing();   
28  }

结果:

要求戴帽子...
农民工在搬砖...
统计数量发工资...