吹静静

欢迎QQ交流:592590682

代理模式在实现过程中,要创建一个接口(社交技巧-接口),代理类(经纪人 - 类)和真实类(范冰冰 - 类)同时实现这个接口。

举个例子:

我们想要找范冰冰吃饭,但是呢,她是大明星,不可能轻易见我们,我们需要先找范冰冰的经纪人。我们跟经纪人说:“我要找范冰冰吃饭”,如果经纪人同意,我们就可以和范冰冰吃饭,不同意的话我们就不能和范冰冰吃饭。

package cn.tedu.staticproxy;
/**
 * 社交技巧 - 接口
 */
public interface SJSkill {
    public void 吃();
    public void 唱歌();
}

 

package cn.tedu.staticproxy;
/**
 * 经纪人 - 类
 */
public class JJRStaticProxy implements SJSkill{

    private FBB fbb = new FBB();
    
    @Override
    public void 吃() {
        System.out.println("权限认证:你谁啊????");
        fbb.吃();
        System.out.println("记录日志:等我,我记一下来访记录");
    }

    @Override
    public void 唱歌() {
        System.out.println("权限认证:你谁啊????");
        fbb.唱歌();
        System.out.println("记录日志:等我,我记一下来访记录");
    }

}

 

package cn.tedu.staticproxy;
/**
 * 范冰冰 - 类
 */
public class FBB implements SJSkill{
    public void 吃(){
        System.out.println("fbb吃饭。。。");
    }
    public void 唱歌(){
        System.out.println("fbb唱歌。。。");
    }
}

 

package cn.tedu.staticproxy;

import org.junit.Test;
/**
 * 测试 - 类 
 */
public class StaticProxyTest {
    @Test
    public void test01(){
        JJRStaticProxy jjr = new JJRStaticProxy();
        jjr.吃();
        jjr.唱歌();
    }
}

 

posted on 2018-10-15 22:33  吹静静  阅读(179)  评论(0编辑  收藏  举报