
首先建立一個接口 UserDao
然後建立一個實作類 UserDaoImpl
當我們需要對已有的接口進行增強時,我們就可以使用Proxy,建立接口的代理對象
對于Proxy類的newProxyInstance方法的第三個參數,可以使用匿名内部類,如上。也可以通過建立實作InvocationHandler的方法傳入。
我們通過這個實作InvocationHandler接口的類建立Proxy對象
為了能增強UserDao的功能,我們需要把UserDao傳入我們的UserDaoProxy類中,這樣可以調用UserDao已經實作的方法。做法是利用有參構造函數。
然後我們實作增強的邏輯
這樣我們就可以用代理對象來增強已有方法了
執行結果: