android-學(xué)渣系列- 設(shè)計(jì)模式學(xué)習(xí) - 適配器模式和代理模式

image.png

將一個(gè)類的接口轉(zhuǎn)換成我們希望的另外一個(gè)接口,

下面是代理模式

image.png

為其他對象提供一種代理以控制對這個(gè)對象的訪問

 public   interface   LognSubject {
     abstract  void logn();
}



public class RealSubject implements   LognSubject {

    @Override
    public void logn() {
        Log.i("111","");

    }
}


public class Proxy implements   LognSubject {
    LognSubject lognSubject ;

    public Proxy(LognSubject lognSubject) {
        this.lognSubject = lognSubject;
    }

    @Override
    public void logn() {
        if(lognSubject==null){
            lognSubject.logn();

        }else{
            lognSubject.logn();

        }
    }


   /**
         * 代理模式
         *   通過接口 讓代理和real都具有相同的方法
         */


        RealSubject realSubject = new RealSubject();
        Proxy proxy = new Proxy(realSubject);
        proxy.logn();、




}

代理模式 在proxy中引用了 真實(shí)對象

代理模式和適配器模式比較 個(gè)人觀點(diǎn): 用法寫法上差不多。
區(qū)別 - 1代理是實(shí)現(xiàn)共同的接口,并且在proxy中有real的引用
- 2適配器中 適配器主要就是連接作用。他可以實(shí)現(xiàn)或者繼承客戶所期待而創(chuàng)建的接口,而被適配的角色也是在適配器中被引用,和代理模式一樣 ,并且適配和被適配的沒有共同接口或者繼承的抽象類,所以兩個(gè)是可以獨(dú)立的對象,可以有不同的方法屬性行為。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容