代理模式(設計模式)


概述

代理模式,為其他對象提供了一種代理以控制對這個對象的訪問。代理模式給某一個對象提供一個代理對象,並由代理對象控制對原對象的引用。通俗的來講代理模式就是我們生活中常見的中介。

代理模式

UML圖

圖 1

代碼

代理類和真實類的公用接口

public interface Subject {
    void request();
}

真實類的請求

public class RealSubject implements Subject{
    @Override
    public void request() {
        System.out.println("真實請求");
    }
}

代理請求,引入了真實類對象,對方法進行了增強

public class Proxy implements Subject{

    private RealSubject realSubject;

    @Override
    public void request() {
        if (realSubject == null) {
            realSubject = new RealSubject();
        }
        realSubject.request();
        System.out.println("代理請求");
    }
}

主函數測試

public class JavaDemo {

    public static void main(String[] args){
        Subject proxy = new Proxy();
        proxy.request();
    }
}

應用場景

比如當我們使用別人的代碼的時候,可以通過代理,對方法增強,避免了修改別人的代碼。Spring AOP。

優缺點

職責清晰了,高擴展性,智能化。但由於多了一個代理對象,可能會使請求的處理速度變慢,有些代理的實現較為復雜。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM