代理模式

代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。

GiveGift.java类

package proxy;

public abstract class GiveGift {
    abstract void giveDolls();
    abstract void giveFlowers();
    abstract void giveChocolate();
}

Pursuit.java类

package proxy;

public class Pursuit extends GiveGift {
    
    SchoolGirl girl;

    public Pursuit(SchoolGirl girl) {
        this.girl = girl;
    }

    @Override
    void giveDolls() {
        System.out.println(girl.getName()+",送你洋娃娃");
    }

    @Override
    void giveFlowers() {
        System.out.println(girl.getName()+",送你鲜花");
    }

    @Override
    void giveChocolate() {
        System.out.println(girl.getName()+",送你巧克力");
    }

}

Proxy.java类

package proxy;

public class Proxy extends GiveGift {
    Pursuit boy;
    
    public Proxy(SchoolGirl girl) {
        boy = new Pursuit(girl);
    }

    @Override
    void giveDolls() {
        boy.giveDolls();
    }

    @Override
    void giveFlowers() {
        boy.giveFlowers();
    }

    @Override
    void giveChocolate() {
        boy.giveChocolate();
    }

}

SchoolGirl.java类

package proxy;

public class SchoolGirl {
    String name;

    public String getName() {
        return name;
    }

    public SchoolGirl(String name) {
        this.name = name;
    }

    
}

Business.java类

package proxy;

public class Business {

    public static void main(String[] args) {
        SchoolGirl girl = new SchoolGirl("徐娇娇");
        Proxy pp = new Proxy(girl);
        pp.giveDolls();
        pp.giveFlowers();
        pp.giveChocolate();
    }

}
原文地址:https://www.cnblogs.com/ccgjava/p/7036655.html