1. 程式人生 > >設計模式之代理模式 (Proxy Pattern)

設計模式之代理模式 (Proxy Pattern)

        代理模式:代理接活,被代理人幹活。主要是用了java的多型特性,定義一個藉口,
讓代理類和被代理類都實現該介面,關鍵在於在代理類的構造方法中引用被代理類
的構造方法。
介面:
public interface Start {

    public void sing();
    public void display();
}
代理類:
public class Start_Chou_Proxy implements Start {
    public Start start;
    public Start_Chou_Proxy(){
        start = new Start_Chou();//關鍵是持有被代理類的構造。一個代理可以代理多個類,定義多個代理類的構造就行。

    }
    public Start_Chou_Proxy(Start start){
        this.start = start;
    }
    @Override
    public void sing() {
        // TODO Auto-generated method stub
          start.sing();
    }

    @Override
    public void display() {
        // TODO Auto-generated method stub
          start.display();
    }

}
被代理類:
public class Start_Chou implements Start {

    @Override
    public void sing() {
        // TODO Auto-generated method stub
        System.out.println("明星唱歌!!!");
    }

    @Override
    public void display() {
        // TODO Auto-generated method stub
        System.out.println("明星演戲!!!");
    }

}
代理模式實現方法測試:
public class Test {

    public static void main(String[] args){
        Start_Chou_Proxy start_Chou_Proxy = new Start_Chou_Proxy();
        start_Chou_Proxy.sing();
        start_Chou_Proxy.display();
    }
}
       總結:代理模式主要使用了Java的多型,幹活的是被代理類,代理類主要是接活,你讓我
幹活,好,我交給幕後的類去幹,你滿意就成,那怎麼知道被代理類能不能幹呢?同根就成,
大家知根知底,你能做啥,我能做啥都清楚的很,同一個介面唄(摘自《設計模式之禪》)。

相關推薦

淺學設計模式建造者Buildler Pattern模式及在android中的應用

public class Food { private String mFoodName; private String mFoodTastes; private String mFoodFeatures; private String mChillies; private String mSuga

設計模式 - 代理模式Proxy Pattern

ride proxy idt object catch 實例化 圖片 null 人在 代理模式:代理是一種常用的設計模式,其目的就是為其他對象提供一個代理以控制對某個對象的訪問。代理類負責為委托類預處理消息,過濾消息並轉發消息,以及進行消息被委托類執行後的後續處理。很多可以

設計模式學習——代理模式Proxy Pattern 強制代理強校驗,防繞過

arr cnblogs 其他 測試 auth using color ref use 上周溫習了代理模式:http://www.cnblogs.com/chinxi/p/7354779.html 在此進行拓展,學習強制代理。但是發現網上大多例子都有個“天坑”(我是這麽認為的

C#設計模式十二代理模式Proxy Pattern【結構型】

ride col 安全 .html 使用權 防火墻 一對多 tro 橋接 原文:C#設計模式之十二代理模式(Proxy Pattern)【結構型】一、引言 今天我們要講【結構型】設計模式的第七個模式,也是“結構型”設計模式中的最後一個模式,該模式是【代理模式】,英文名稱

設計模式代理模式Proxy Pattern

應用場景 Proxy代理模式是一種結構型設計模式,主要解決的問題是:直接訪問物件時帶來的問題。 為了保持行為的一致性,代理類和委託類通常會實現相同的介面,所以在訪問者看來兩者並無區別。 代理類種類: 靜態:建立代理類再對其編譯,在程式執行前代理類的.class檔案就已

設計模式代理模式 Proxy Pattern

        代理模式:代理接活,被代理人幹活。主要是用了java的多型特性,定義一個藉口, 讓代理類和被代理類都實現該介面,關鍵在於在代理類的構造方法中引用被代理類 的構造方法。 介面: public interface Start {     public void sing();     public

設計模式學習——代理模式Proxy Pattern

pre .cn mar str ubuntu 技術 運行 obj proxy 放假啦~學生們要買車票回家了,有汽車票、火車票,等。但是,車站很遠,又要考試,怎麽辦呢?找代理買啊,雖然要多花點錢,但是,說不定在搞活動,有折扣呢~ 1 /// 2 /// @fi

c#設計模式代理模式(Proxy Pattern)

ole 購物 click size ont 業務 添加 .html 售票 引言 代理這個詞語,大家在現實世界已經頻繁的接觸過,例如火車站代理售票點,因為這些代理售票點的存在,我們不必要去火車站的售票處就可以查詢或者取到火車票.代理點本身是沒有能力生產車票的,我們在代理處享

設計模式代理模式Proxy2

技術分享 strong 流程 imp pla 遠程調用 height bst 速度 代理模式是為其他對象提供一種代理以控制對這個對象的訪問。在某些情況下,一個對象不適合或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用,其特征是代理類與委托類有同

C#設計模式(13)——代理模式Proxy Pattern

web服務 軟件開發過程 smart stat args 橋接模式 復雜 src 空間 一、引言 在軟件開發過程中,有些對象有時候會由於網絡或其他的障礙,以至於不能夠或者不能直接訪問到這些對象,如果直接訪問對象給系統帶來不必要的復雜性,這時候可以在客戶端和目標對象之間增加一

重走Java設計模式——代理模式Proxy Pattern

代理模式 定義 為其他物件提供一種代理以控制對這個物件的訪問。 程式碼示例 我們將建立一個Image 介面和實現了 Image 介面的實體類。ProxyImage 是一個代理類,減少 RealImage 物件載入的記憶體佔用。 ProxyPatternDem

設計模式代理模式Proxy Pattern

意圖:為其他物件提供一種代理以控制對這個物件的訪問。 主要解決:在直接訪問物件時帶來的問題,比如說:要訪問的物件在遠端的機器上。在面向物件系統中,有些物件由於某些原因(比如物件建立開銷很大,或者某些操作需要安全控制,或者需要程序外的訪問),直接訪問會給使用者或者系統結構帶來很多麻煩,我們

38C#設計模式——代理模式Proxy Pattern

引言 在軟體開發過程中,有些物件有時候會由於網路或其他障礙,以至於不能夠或者不能直接訪問到這些物件,如果直接訪問物件給系統帶來不必要的複雜性,這時候可以在客戶端和目標物件之間增加一層中間層,讓代理物件代替目標物件,然後客戶端只需要訪問代理物件,由代理物件去幫我們請求目標物件

Java設計模式代理模式Proxy

前言:       最近在研究Retrofit開源框架的時候,其主要核心程式碼是通過註解標示引數,動態代理模式實現具體介面,反射機制進行引數解析,最終實現傳送請求。其實之前在學習Xutils原始碼的時候,Xutils 的task也是通過代理模式來訪問的。為何要採用代理模式呢?有什麼好處呢?抱著這些疑問!今天

JAVA設計模式 代理模式Proxy Pattern

一、概述     給某一個物件提供一個代理,並由代理物件來完成對原物件的訪問。代理模式是一種物件結構型模式。 二、適用場景     當無法直接訪問某個物件或訪問某個物件存在困難時可以通過一個代理物件來間接訪問,為了保證客戶端使用的透明性,委託物件與代理物件需要實現相同

代理模式Proxy Pattern- 最易懂的設計模式解析

前言 今天我來全面總結一下Android開發中最常用的設計模式 - 代理模式。 目錄 1. 介紹 1.1 定義 給目標物件提供一個代理物件,並由代理物件控制對目標物件的引用 代理物件:起到中介作用,

研磨設計模式 代理模式Proxy2——跟著cc學設計系列

11.2  解決方案 11.2.1  代理模式來解決 用來解決上述問題的一個合理的解決方案就是代理模式。那麼什麼是代理模式呢? (1)代理模式定義   (2)應用代理模式來解決的思路 仔細分析上面的問題,一次性訪問多條資料,這個可能性是很難避免的,是客戶的需要。也就是說,

設計模式代理模式(Proxy Pattern)

1 代理模式定義 定義:給某個物件提供一個代理物件,並由代理物件控制對於原物件的訪問,即客戶不直接操控原物件,而是通過代理物件間接地操控原物件。 2 代理模式的作用 在某些情況下,一個客戶不想或者不能直接引用另一個物件,而代理物件可以在客戶端和目

設計模式 —— 代理模式Proxy Pattern

代理模式(Proxy Pattern) 概念: 定義:代理模式 為另一個物件提供一個替身或佔位符以控制這個物件的訪問。 代理模式很好理解,在生活中也很常見。舉個簡單的例子,我們自己能做很多事情(動作),比如寫作業,出去玩等。當我們和父母在家的時候,

研磨設計模式 代理模式Proxy3——跟著cc學設計系列

11.3  模式講解 11.3.1  認識代理模式 (1)代理模式的功能 代理模式是通過建立一個代理物件,用這個代理物件去代表真實的物件,客戶端得到這個代理物件過後,對客戶端沒有什麼影響,就跟得到了真實物件一樣來使用。        當客戶端操作這個代理物件的時候,實際上功