問題的提出

現(xiàn)在生活中,常常在微信朋友圈里面看到代購的信息,你想在國外買什么,香港買什么,但是又懶得自己過去,于是常常委托別人幫忙買奶粉買那啥的。這類問題的緣由是因為客戶和原產(chǎn)地沒有直接的接觸,所以需要一個代理(代購)的第三者來實現(xiàn)間接引用。代理對象可以在客戶端和目標(biāo)對象間起到中介作用,而且可以通過代理對象去掉客戶不能看到的內(nèi)容和服務(wù)或者添加客戶需要的額外服務(wù)。代理模式是一種很好實現(xiàn)客戶對象與代理對象分離的策略。其抽象UML圖如下圖

Android培訓(xùn),安卓培訓(xùn),手機開發(fā)培訓(xùn),移動開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

代理模式包含如下角色

ISubject:抽象主題角色,是一個接口。該接口是對象和它的代理公用的接口。

RealSubject:真實的主題角色,是實現(xiàn)主題接口的類。

Proxy:代理角色,內(nèi)部含有對真實對象RealSubject的引用,從而可以操作真實對象。代理對象可以在執(zhí)行真實對象操作時,附加其他的操作,相當(dāng)于對真實對象進(jìn)行封裝。

買電視為例

1)定義抽象主題-買電視

public interface ITV {    public void buyTV();
}

2)定義實際主題-買電視過程

public class Buyer implements ITV {    public void buyTV(){
        System.out.println("I have bought the TV by buyer proxy");
    }
}

3)定義代理

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式