設計模式之Proxy模式

2021-07-04 17:21:55 字數 1260 閱讀 9878



**(proxy)模式給某乙個物件提供乙個**,並由**物件控制對原物件的引用。

**模式的英文叫做proxy或surrogate,中文都可譯成"**"。所謂**,就是乙個人或者乙個機構代表另乙個人或者另乙個機構採取行動。在一些情況下,乙個客戶不想或者不能夠直接引用乙個物件,而**物件可以在客戶端和目標物件之間起到中介的作用。

如果按照使用目的來劃分,**有以下幾種:

在所有種類的**模式中,虛擬(virtual)**、遠端(remote)**、智慧型引用**(smart reference proxy)和保護(protect or access)**是最為常見的**模式。

另外乙個例子就是windows的快捷方式。快捷方式是它所引用的程式的乙個**。

**模式的類圖如下圖所示:

**模式所涉及的角色有:

抽象主題角色(subject):宣告了真實主題和**主題的共同介面,這樣一來在任何使用真實主題的地方都可以使用**主題。

**主題(proxy)角色:**主題角色內部含有對真是主題的引用,從而可以在任何時候操作真實主題物件;**主題角色提供乙個與真實主題角色相同的介面,以便可以在任何時候都可以替代真實主體;控制真實主題的應用,負責在需要的時候建立真實主題物件(和刪除真實主題物件);**角色通常在將客戶端呼叫傳遞給真實的主題之前或之後,都要執行某個操作,而不是單純的將呼叫傳遞給真實主題物件。

真實主題角色(realsubject)角色:定義了**角色所代表的真實物件。

以下示例性**實現了**模式:

public inte***ce sourceable

public class source implements sourceable 

}

public class proxy implements sourceable 

@override

public void method()

private void atfer()

private void before()

}

public class proxytest 

}

設計模式 Proxy模式

作用 為其他物件提供一種 以控制對這個物件的訪問。uml結構圖 抽象基類 1 subject 定義了proxy和realsubject的公有介面,這樣就可以在任何需要使用到realsubject的地方都使用proxy.解析 proxy其實是基於這樣一種時常使用到的技術 某個物件直到它真正被使用到的時...

設計模式 Proxy模式

模式 1 什麼是 模式?模式 proxy 為其他物件提供一種 以控制對這個物件的訪問。dp 通俗的說就是指客戶端並不直接呼叫實際的物件,而是通過 物件,來間接呼叫實際的物件。2 實現原理 subject 可以是介面,也可以是抽象類 proxy 內部含有對真實物件realsubject的引用,負責對真...

設計模式之Proxy 買票篇

今年過年手氣好,打牌贏了 100塊,我得意的笑,我得意的笑,總之乙個字 爽 因為往年打牌從沒贏過啊!我高興的回到家裡,還沒等我開口報告戰況,老婆撂給我一句話 我弟要回上海,你給買張票吧。我心裡雖然不高興,但臉上卻表現出很開心的樣子,立刻用堅定語氣說到 請領導放心,保證完成任務!保證歸保證,可是大過年...