首页 > 编程 > Java > 正文

java代理模式

2019-11-08 03:05:51
字体:
来源:转载
供稿:网友
interface GiveGift{    void GiveDolls();    void GiveFlowers();}class SchoolGirl{    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    PRivate String name;}class Pursuit implements GiveGift{    private SchoolGirl mm;    public  Pursuit(SchoolGirl mm){        this.mm=mm;    }    public void GiveDolls() {        System.out.println("give Dolls to "+mm.getName());    }    @Override    public void GiveFlowers() {        System.out.println("give Flowers to "+mm.getName());    }}class Proxy implements GiveGift{    private Pursuit gg;    public Proxy(SchoolGirl mm){        gg=new Pursuit(mm);    }    @Override    public void GiveDolls() {      gg.GiveDolls();    }    @Override    public void GiveFlowers() {        gg.GiveFlowers();    }}
public class TestProxy {    public static void main(String[] args){     SchoolGirl jiaojiao=new SchoolGirl();        jiaojiao.setName("jiaojiao");        Proxy daili=new Proxy(jiaojiao);        daili.GiveDolls();        daili.GiveFlowers();    }}

表面上我们只能看见代理与schoolgirl的交互,其实是Pursuit类完成本质上的工作。

代理类与被代理的pursuit实现同一接口。我们可以在代理类加入自己的逻辑。比如调用被代理前日志打印。拦截特定信息。调用后的收尾操作。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表