1. 程式人生 > 其它 >Java進階_靜態代理模式

Java進階_靜態代理模式

靜態代理模式

package com.mike.demo03;

//靜態代理模式總結:
    //真實物件和代理物件都要實現同一個介面
    //代理物件要代理真實角色
//好處:
    //代理物件 可以做很多真實物件做不的事情
    //真實物件專注做自己的事情

public class StaticProxy {

    public static void main(String[] args) {
        WeddingCompany weddingCompany = new WeddingCompany(new You());
        weddingCompany.happyMarry();
    }
}

//結婚介面
interface Marry{
    //人間四大喜事
        //久旱逢甘霖
        //他鄉遇故知
        //洞房花燭夜
        //金榜題名時
    void happyMarry();
}


//真實角色,你去結婚
class You implements Marry{

    @Override
    public void happyMarry() {
        System.out.println("我要結婚了,超級開心!");
    }
}


//代理角色,幫助你結婚
class WeddingCompany implements Marry{

    //代理誰--》真實目標角色
    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("結婚之後,收尾款");
    }
}
/*輸出結果
            結婚之前,佈置現場
            我要結婚了,超級開心!
            結婚之後,收尾款
*/