1. 程式人生 > 其它 >執行緒底部實現原理:靜態代理模式

執行緒底部實現原理:靜態代理模式

執行緒底部實現原理:靜態代理模式

案例:

package multithreading;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

// 靜態代理模式總結
// 真實物件和代理物件都要實現同一介面
// 代理物件要代理真實角色

// 使用靜態代理的好處:1.代理物件可以做很多真實物件做不了的事情 2.真實物件可以專注做自己的事情
public class StaticProxy {
    public static void main(String[] args) {
        You you = new You();  // 真實物件
        // you.HappyMarry();  // 不使用代理
        WeddingCompany weddingCompany = new WeddingCompany(you);  // 代理物件
        weddingCompany.HappyMarry();
    }
}

interface Marry{
    // 人間四大喜事:久旱逢甘露,他鄉遇故知,洞房花燭夜,金榜題名時
    void HappyMarry();
}

// 真實物件,你去結婚
class You implements Marry{
    @Override
    public void HappyMarry() {
        System.out.println("你結婚了,超開心");
    }
}

// 代理物件,幫助你結婚
class WeddingCompany implements Marry{

    // 代理誰?-->真實目標角色target
    private Marry target;

    public WeddingCompany(Marry target){
        this.target = target;
    }

    @Override
    public void HappyMarry() {
        before();
        this.target.HappyMarry();  // 這就是真實物件
        after();
    }

    private void before(){
        System.out.println("結婚之前,佈置現場");
    }
    private void after(){
        System.out.println("結婚之後,收尾款");
    }

}

執行結果:

使用靜態代理的好處:
1.代理物件可以做很多真實物件做不了的事情
2.真實物件可以專注做自己的事情