前言
插件化开发所涉及到的技术点非常多,比如程序的启动流程、四大组件启动流程、ClassLoader原理、上下文Context、AMS原理、反射、代理等。本篇主要简单介绍代理模式,为后面介绍插件化实现做知识铺垫。
1 // 2 public interface IShop { 3 void buy(); 4 } 5 6 // 7 public class Boss implements IShop { 8 @Override 9 public void buy() { 10 System.out.println("I am boss,I buy buy buy"); 11 } 12 } 13 14 // 15 public class Assistant implements IShop { 16 private IShop mBoss; 17 Assistant(IShop shoper) { 18 mBoss = shoper; 19 } 20 21 @Override 22 public void buy() { 23 mBoss.buy(); 24 } 25 } 26 27 // 28 public class ProxyDemo { 29 public static void main(String[] args) { 30 IShop boss = new Boss(); 31 IShop assitant = new Assistant(boss); 32 assitant.buy(); 33 } 34 }
动态代理