1. 程式人生 > >代理模式(Proxy Pattern):簡單&粗暴解析

代理模式(Proxy Pattern):簡單&粗暴解析

1.前言


2.目錄

模式目錄.png


3.含義

一個類代表另一個類的功能。


4.解決

1.目標物件與訪問者高度耦合 & 難擴充套件的問題。


5.原理

**通過 【代理】這個中介,把 ”目標物件功能“ 與 ”訪問者“ 分離 **。

5.1 代理模式結構

代理結構1.png

5.2 結構分析

Subject:定義需要被代理的功能。
ProxySubject:代理類。
RealSubject:真實實現類。

5.3 例項(Android 開發中網路框架的切換)

  • Volley 切換為 Retrofit 網路框架。

Subject

public interface Request{
    void get(String url);
}

Proxy

public class Proxy implements Request {
    private static Proxy proxy;
private Request request; public static Proxy getInstance(){ if(proxy==null){ synchronized (Proxy.class){ if(proxy==null){ proxy = new Proxy(); } } } return proxy; } public void init(Request request1)
{ request = request1; } @Override public void get(String url) { request.get(url); } }

VolleyRequest

public class VolleyRequest implements Request {
    @Override
    public void get(String url) {
        // 使用Volley框架完成get訪問
    }
}

RetrofitRequest

public class RetrofitRequest implements Request {
    @Override
    public void get(String url) {
        // 使用Retrofit框架完成get訪問
    }
}

6.優點

1.職責清晰。
2.高擴充套件。
3.保護真實物件的使用許可權。


7.缺點

  1. 實現代理模式需要額外的工作,有些代理模式的實現非常複雜。

8.總結

  • 到此, 代理模式 就解析完畢,後續我會把上述 三大型別模式 下的各子模式進行解析分享,
    請繼續關注linhaojian_簡書
  • 如果喜歡我的分享,可以點選  關注  或者  ,你們支援是我分享的最大動力 。
    linhaojian的Github

歡迎關注linhaojian_CSDN部落格或者linhaojian_簡書

不定期分享關於安卓開發的乾貨。

設計模式(Design pattern):簡單&粗暴解析
單例模式(Singleton Pattern):簡單&粗暴解析
簡單工廠模式(Easy Factory Pattern):簡單&粗暴解析
工廠模式(Factory Pattern):簡單&粗暴解析):簡單&粗暴解析
抽象工廠模式(Abstract Factory Pattern):簡單&粗暴解析
建造者模式(Builder Pattern):簡單&粗暴解析
代理模式(Proxy Pattern):簡單&粗暴解析
裝飾器模式(Decorator Pattern):簡單&粗暴解析


寫技術文章初心

  • 技術知識積累
  • 技術知識鞏固
  • 技術知識分享
  • 技術知識交流