静态代理
静态代理是由程序员自己编码实现(工具自动生成),再编译成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 }
结果:
要求戴帽子...
农民工在搬砖...
统计数量发工资...
本文来自博客园,作者:领着小丫闯江湖,转载请注明原文链接:https://www.cnblogs.com/lzxycjh/p/17867668.html

浙公网安备 33010602011771号