代理模式在实现过程中,要创建一个接口(社交技巧-接口),代理类(经纪人 - 类)和真实类(范冰冰 - 类)同时实现这个接口。
举个例子:
我们想要找范冰冰吃饭,但是呢,她是大明星,不可能轻易见我们,我们需要先找范冰冰的经纪人。我们跟经纪人说:“我要找范冰冰吃饭”,如果经纪人同意,我们就可以和范冰冰吃饭,不同意的话我们就不能和范冰冰吃饭。
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.唱歌(); } }