1,什麼是代理模式?
代理模式的作用是:爲其他對象提供一種代理以控制對這個對象的訪問。
2,策略模式有什麼好處?
在某些情況下,一個客戶不想或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用。
3,代理模式一般涉及到的角色有:
抽象角色:聲明真實對象和代理對象的共同接口;
代理角色:代理對象角色內部含有對真實對象的引用,從而可以操作真實對象,同時代理對象提供與真實對象相同的接口以便在任何時刻都能代替真實對象。同時,代理對象可以在執行真實對象操作時,附加其他的操作,相當於對真實對象進行封裝。
真實角色:代理角色所代表的真實對象,是我們最終要引用的對象。
代理模式的結構
所謂代理,就是一個人或者機構代表另一個人或者機構採取行動。在一些情況下,一個客戶不想或者不能夠直接引用一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用。
代理模式類圖如下:
源代碼
抽象對象角色
public abstract class AbstractObject { //操作 public abstract void operation(); }
目標對象角色
public class RealObject extends AbstractObject { @Override public void operation() { //一些操作 System.out.println("一些操作"); } }
代理對象角色
public class ProxyObject extends AbstractObject{ RealObject realObject = new RealObject(); @Override public void operation() { //調用目標對象之前可以做相關操作 System.out.println("before"); realObject.operation(); //調用目標對象之後可以做相關操作 System.out.println("after"); } }
客戶端
public class Client { public static void main(String[] args) { // TODO Auto-generated method stub AbstractObject obj = new ProxyObject(); obj.operation(); } }