频道栏目
首页 > 程序开发 > 软件开发 > Java > 正文
java实现之代理模式
2017-11-14 10:38:08      个评论    来源:linlinxie的博客  
收藏   我要投稿

UML图,为了展示核心的代理模式类关系,这里细节的部分,比如Pursui和SchoolGirl的关系就不画了,代理模式的核心为代理类和被代理类实现的是同一个接口,可以详细控制访问某个类的方法,在调用方法前做前置处理,在调用方法后做后置处理
这里写图片描述
代码结构
这里写图片描述

public class Client {
    public static void main(String[] args) {
        SchoolGirl jiaojiao = new SchoolGirl("李娇娇");

        Proxy dali = new Proxy(jiaojiao);

        dali.giveDolls();
        dali.giveFlowers();
    }
}
public interface IGiveGift {
    void giveDolls();
    void giveFlowers();
}
public class Proxy implements IGiveGift {
    private Pursuit gg;

    public Proxy(SchoolGirl mm) {
        gg = new Pursuit(mm);
    }

    @Override
    public void giveDolls() {
        if(gg != null) {
            gg.giveDolls();
        }
    }

    @Override
    public void giveFlowers() {
        if(gg != null) {
            gg.giveFlowers();
        }
    }

}
public class Pursuit implements IGiveGift {
    private SchoolGirl schoolGirl;

    public Pursuit(SchoolGirl schoolGirl) {
        super();
        this.schoolGirl = schoolGirl;
    }

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

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

}
public class SchoolGirl {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

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

}

运行结果
这里写图片描述

点击复制链接 与好友分享!回本站首页
上一篇:关于java.lang.IllegalStateException: Fragment already added问题的解决办法
下一篇:JavaWeb:"javax.servlet.http.HttpServlet" was not found on the Java Build Path解决办法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站