常用设计模式-代理模式

来源:互联网 发布:visio2010软件下载 编辑:程序博客网 时间:2024/05/31 11:04

      • 常用设计模式-代理模式
        • 代理模式uml类图
        • 代理
        • 被代理
        • 实现统一的接口

常用设计模式-代理模式

1.代理模式uml类图

这里写图片描述

就拿最近比较火的某某wang 事件进行举例。类少直接上代码!

package dailimodel;/** *  * 实现简单代理模式必要条件 *  * 代理类,被代理类,代理类和被代理实现的统一接口,调用者类 *  * 电视台 mangguoTV *  * 代理模式,开发中是很常用的设计模式 *  *  * 优点: 代理模式能够将调用用于真正被调用的对象隔离,在一定程度上降低了系统的耦合度; *  * 代理对象在客户端和目标对象之间起到一个中介的作用,这样可以起到对目标对象的保护。代理对象可以在对目标对象发出请求之前进行一个额外的操作,例如权限检查等。 *  * 缺点: *  * 由于在客户端和真实主题之间增加了一个代理对象,所以会造成请求的处理速度变慢 *  * 实现代理类也需要额外的工作,从而增加了系统的实现复杂度。 *  * @author weichyang *  */public class MangGuoTv {    /**     * @param args     */    public static void main(String[] args) {        System.out.println("connection actor wang to make move");        // 代理人送不会 拍电影,但是song 作为wang的代理人 可以代wang 接受。        AgentSong aSong = new AgentSong();        aSong.acting();        // 艺人wang wife want happy,agent song 去帮助        aSong.makeHappy();    }}

2.代理:

package dailimodel;/** * 代理人 song *  * @author weichyang *  */public class AgentSong implements DayWork {    ActorWang actorWang = null;    public AgentSong() {        actorWang = new ActorWang();    }    @Override    public void makeHappy() {        actorWang.makeHappy();    }    @Override    public void acting() {        actorWang.acting();    }}

3.被代理:

package dailimodel;/** * 艺人  * @author weichyang * */public class ActorWang implements DayWork {    @Override    public void makeHappy() {        System.out.println("with MA happy !!!!");    }    @Override    public void acting() {        System.out.println("make move ba ba qu na!");    }}

4.实现统一的接口:

package dailimodel;/** * 日常工作 *  * @author weichyang *  */public interface DayWork {    void makeHappy(); // you konw that, what is happy?    void acting(); // 拍戏}

  1. http://www.cnblogs.com/bhlsheji/p/5209401.html 代理模式
0 0
原创粉丝点击