0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

設計模式結構性:代理模式

冬至子 ? 來源:碼農架構 ? 作者:小智 ? 2023-06-09 15:27 ? 次閱讀

在代理模式(Proxy Pattern)中,一個類代表另一個類的功能。這種類型的設計模式屬于結構型模式。

在代理模式中,我們創(chuàng)建具有現(xiàn)有對象的對象,以便向外界提供功能接口。在直接訪問對象時帶來的問題,比如說:要訪問的對象在遠程的機器上。

在面向對象系統(tǒng)中,有些對象由于某些原因(比如對象創(chuàng)建開銷很大,或者某些操作需要安全控制,或者需要進程外的訪問),直接訪問會給使用者或者系統(tǒng)結構帶來很多麻煩,我們可以在訪問此對象時加上一個對此對象的訪問層。

結構圖

圖片

角色與理解

  • 代理模式共分為四種角色:
  • Subject (抽象主題角色):真實主題角色與代理主題角色的共同父類,可以是具體類、抽象類、接口,客戶端針對抽象主題角色編程
  • RealSubject (真實主題角色):實現(xiàn)具體業(yè)務方法的類,被代理主題角色調用
  • Proxy (代理主題角色):持有真實主題角色的引用,在調用真實主題角色的具體業(yè)務方法之前或者之后添加其它操作
  • 客戶端面對抽象主題角色編程,調用抽象主題角色實際上調用的是代理主題角色,代理主題角色調用的是真實主題角色的方法,并在調用真實主題角色之前或者之后添加其他操作

核心代碼

  • 抽象主題角色

圖片

  • 真實主題角色

圖片

  • 代理主題角色

圖片

  • 客戶端

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制系統(tǒng)

    關注

    41

    文章

    6642

    瀏覽量

    110718
  • Proxy
    +關注

    關注

    0

    文章

    7

    瀏覽量

    7447
  • pattern
    +關注

    關注

    0

    文章

    6

    瀏覽量

    9646
收藏 人收藏

    評論

    相關推薦

    適配器模式代理模式的區(qū)別

      代理模式  組成:  抽象角色:通過接口或抽象類聲明真實角色實現(xiàn)的業(yè)務方法。  代理角色:實現(xiàn)抽象角色,是真實角色的代理,通過真實角色的業(yè)務邏輯方法來實現(xiàn)抽象方法,并可以附加自己的
    發(fā)表于 10-22 15:17

    優(yōu)化電動汽車的結構性

    優(yōu)化電動汽車的結構性能以提高效率和安全迅速增長的全球電動汽車(EV)市場預計到2027年將達到8028億美元。在電池和高壓電子設備的驅動下,電動汽車的運行和維護成本往往低于傳統(tǒng)汽車,幾乎不會產生
    發(fā)表于 09-17 08:10

    STM32的結構和啟動模式

    STM32的結構和啟動模式需要的來下載哦。
    發(fā)表于 03-31 17:36 ?46次下載

    適配器模式、裝飾器模式、代理模式的區(qū)別

    適配器模式、裝飾器模式、代理模式都屬于設計模式中的結構型模式,
    發(fā)表于 10-18 15:53 ?1.7w次閱讀
    適配器<b class='flag-5'>模式</b>、裝飾器<b class='flag-5'>模式</b>、<b class='flag-5'>代理</b><b class='flag-5'>模式</b>的區(qū)別

    適配器模式代理模式的區(qū)別

    適配器模式:適配器模式有時候也稱包裝樣式或者包裝。將一個類的接口轉接成用戶所期待的。代理模式:為其他對象提供一種代理以控制對這個對象的訪問。
    發(fā)表于 01-12 11:56 ?5282次閱讀
    適配器<b class='flag-5'>模式</b>和<b class='flag-5'>代理</b><b class='flag-5'>模式</b>的區(qū)別

    GoF設計模式代理模式

    它是一個使用率非常高的設計模式,在現(xiàn)實生活中,也是很常見。比如,演唱會門票黃牛。假設你需要看一場演唱會,但官網(wǎng)上門票已經售罄,于是就當天到現(xiàn)場通過黃牛高價買了一張。在這個例子中,黃牛就相當于演唱會門票的代理,在正式渠道無法購買門票的情況下,你通過
    的頭像 發(fā)表于 10-17 09:45 ?952次閱讀

    設計模式結構性:適配器模式

    適配器模式(Adapter Pattern)是作為兩個不兼容的接口之間的橋梁。這種類型的設計模式屬于結構型模式,它結合了兩個獨立接口的功能。
    的頭像 發(fā)表于 06-07 11:56 ?774次閱讀
    設計<b class='flag-5'>模式</b><b class='flag-5'>結構性</b>:適配器<b class='flag-5'>模式</b>

    設計模式結構性:組合模式

    組合模式(Composite Pattern),又叫部分整體模式,是用于把一組相似的對象當作一個單一的對象。
    的頭像 發(fā)表于 06-08 10:34 ?1260次閱讀
    設計<b class='flag-5'>模式</b><b class='flag-5'>結構性</b>:組合<b class='flag-5'>模式</b>

    設計模式結構性:橋接模式

    橋接模式不是將兩個不相干的類鏈接,而是將一個需要多維度變化的類拆分成抽象部分和實現(xiàn)部分,并且在抽象層對兩者做組合關聯(lián),是用組合的方式來解決繼承的問題。
    的頭像 發(fā)表于 06-08 10:49 ?837次閱讀
    設計<b class='flag-5'>模式</b><b class='flag-5'>結構性</b>:橋接<b class='flag-5'>模式</b>

    設計模式結構性:門面模式

    門面模式,是指提供一個統(tǒng)一的接口去訪問多個子系統(tǒng)的多個不同的接口,它為子系統(tǒng)中的一組接口提供一個統(tǒng)一的高層接口。
    的頭像 發(fā)表于 06-08 14:28 ?690次閱讀
    設計<b class='flag-5'>模式</b><b class='flag-5'>結構性</b>:門面<b class='flag-5'>模式</b>

    設計模式結構性:享元模式

    享元模式(Flyweight Pattern)主要用于減少創(chuàng)建對象的數(shù)量,以減少內存占用和提高性能。
    的頭像 發(fā)表于 06-08 17:32 ?755次閱讀
    設計<b class='flag-5'>模式</b><b class='flag-5'>結構性</b>:享元<b class='flag-5'>模式</b>

    設計模式代理模式的使用場景

    官方定義: 代理模式 (Proxy Pattern) 是一種結構型設計模式,通過代理對象控制對原對象的訪問,并允許在訪問前或訪問后做一些處理
    的頭像 發(fā)表于 10-08 14:34 ?1076次閱讀
    設計<b class='flag-5'>模式</b>中<b class='flag-5'>代理</b><b class='flag-5'>模式</b>的使用場景

    5G技術和電動汽車會推動結構性增長嗎?.zip

    5G技術和電動汽車會推動結構性增長嗎?
    發(fā)表于 01-13 09:06 ?1次下載

    存儲器結構性分道篇.zip

    存儲器結構性分道篇
    發(fā)表于 01-13 09:07 ?1次下載

    汽車行業(yè):短期關注芯片短缺改善,長期布局結構性機會.zip

    汽車行業(yè):短期關注芯片短缺改善,長期布局結構性機會
    發(fā)表于 01-13 09:07 ?2次下載