1. 程式人生 > >設計模式-靜態代理

設計模式-靜態代理

靜態代理介紹:代理模式這種設計模式是一種使用代理物件來執行目標物件的方法並在代理物件中增強目標物件方法的一種設計模式。代理物件代為執行目標物件的方法,並在此基礎上進行相應的擴充套件。看起來是有點拗口,首先介紹一個原則:開閉原則(對擴充套件開放,對修改關閉)。

元素: 共同介面、代理物件、目標物件

程式碼如下:

介面:

public interface Boss {
    public void sign();
}

//目標實現類

public class BossImpl implements Boss {

    @Override
    public void sign(){
        System.out.println("-----boss sign");
    }
}

//代理實現類

public class BossProxy implements Boss {

    Boss boss=null;
    public BossProxy(Boss boss){
        this.boss = boss;
    }

    public void sign(){
        if(boss != null){
            System.out.println("----BossProxy start");
            boss.sign();
            System.out.println("----BossProxy end");
        }
    }

}

測試:

public class ProxyMain {

    public static void main(String[] args){
        Boss boss = new BossImpl();
        BossProxy proxy = new BossProxy(boss);
        proxy.sign();
    }

}

結果:

----BossProxy start -----boss sign ----BossProxy end