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_簡書
  • 如果喜歡我的分享,可以點選  關注  或者  ,你們支援是我分享的最大動力 。 - 

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

寫技術文章初心

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