概念: 當(dāng)無法直接訪問某個對象桨吊,或者訪問某個對象存在困難的時候可以通過一個代理對象來間接的訪問挎塌,所訪問的代理對象和真實對象需要實現(xiàn)相同的接口艘蹋,由代理對象控制原對象的訪問沸手。
Paste_Image.png
角色:
**抽象主題角色: Subject ** 代理類和真實類的共同接口外遇,這樣在任何使用真實主題的地方都可以使用代理主題來代替。
代理主題角色: ProxySubject 它包含對一個真實主題的引用契吉,從而可以在任何時候都可以來操作真實主題對象跳仿。
真實主題角色: RealSubject 它是代理類所代表的真實的對象,在真實的主題角色中實現(xiàn)了真實的業(yè)務(wù)操作捐晶。
分類:
遠(yuǎn)程代理:為位于不同地址空間的對象的本地對象提供一個本地代理菲语。
虛擬代理:如果需要創(chuàng)建一個資源消耗較大的對象,可以先創(chuàng)建一個消耗相對較小的對象來表示惑灵,真正的對象只有在使用的時候才被創(chuàng)建山上。
Android中的應(yīng)用:
遠(yuǎn)程代理,因為ActivityManagerProxy與ActivityManagerService不再同一個地址空間英支。
Paste_Image.png