為什麼要學習代理模式?應為這就是springAOP的底層!【SpringAOP和SpringMVC】
代理模式的分類:
靜态代理
動态代理

角色分析:
抽象角色:一般會使用接口或者抽象類來解決
真實角色:被代理的角色
代理角色:代理真實角色,代理真實角色後,一般會做一些附屬操作
客戶:通路代理對象的人
代碼步驟:
1.接口
2.真實角色
3.代理角色
4.用戶端通路代理角色
代理模式的好處:
可以是真實角色的操作更加純粹!不用去關注一些公共的業務
公告業務也就交給代理角色!實作業務的分工
公告業務發生擴充的時候,友善集中管理
缺點:
一個真實角色就會産生一個代理角色;代碼量會翻倍開發效率會變低
動态代理和靜态代理角色一樣
動态代理的代理類是動态生成的,不是我們直接寫好的
動态代理分為兩大類:基于接口的動态代理,基于類的動态代理
基于接口---JDK動态代理
基于類:cglib
Java位元組碼實作:javasist
需要兩個類:Proxy:代理,InvocationHandler:調用處理程式
InvocationHandler
動态代理的好處:
一個動态代理類代理的是一個接口,一般是一類業務
一個動态代理類可以代理多個類,隻要是實作了同一個接口即可