代理模式-靜態代理
阿新 • • 發佈:2018-12-19
什麼是代理模式
通過代理控制物件的訪問,可以詳細訪問某個物件的方法,在這個方法呼叫處理,或呼叫後處理。既(AOP微實現) ,AOP核心技術面向切面程式設計。
代理模式應用場景
SpringAOP、事物原理、日誌列印、許可權控制、遠端呼叫、安全代理 可以隱蔽真實角色
代理的分類
靜態代理(靜態定義代理類)
動態代理(動態生成代理類)
Jdk自帶動態代理
Cglib 、javaassist(位元組碼操作庫)
靜態代理
什麼是靜態代理
由程式設計師建立或工具生成代理類的原始碼,再編譯代理類。所謂靜態也就是在程式執行前就已經存在代理類的位元組碼檔案,代理類和委託類的關係在執行前就確定了。
靜態代理程式碼
public interface IUserDao { void save(); } public class UserDao implements IUserDao { public void save() { System.out.println("已經儲存資料..."); } } 代理類 public class UserDaoProxy implements IUserDao { private IUserDao target; public UserDaoProxy(IUserDao iuserDao) { this.target = iuserDao; } public void save() { System.out.println("開啟事物..."); target.save(); System.out.println("關閉事物..."); } }