1. 程式人生 > >代理模式-靜態代理

代理模式-靜態代理

什麼代理模式

通過代理控制物件的訪問,可以詳細訪問某個物件的方法,在這個方法呼叫處理,或呼叫後處理。既(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("關閉事物...");

}



}