代理设计模式
2018, Apr 19
代理设计模式
代理模式:控制对象访问
- 优点:高扩展性
-
接口
/** * 接口 */ public interface Star { /** * 唱歌方法 */ void sing(); }
-
真实角色
public class RealStar implements Star { @Override public void sing() { System.out.println("明星本人开始唱歌……"); } }
-
代理角色
public class ProxyStar implements Star {
/**
* 接收真实的明星对象
*/
private Star star;
/**
* 通过构造方法传进来真实的明星对象
* @param star star
*/
public ProxyStar(Star star) {
this.star = star;
}
@Override
public void sing() {
System.out.println("代理先进行谈判……");
// 唱歌只能明星自己唱
this.star.sing();
System.out.println("演出完代理去收钱……");
}
}
测试函数
public class Client {
/**
* 测试静态代理结果
*/
public static void main(String[] args) {
Star realStar = new RealStar();
Star proxy = new ProxyStar(realStar);
proxy.sing();
}
}