//------------------静态模式---------------
//---------------------接口-------------------
package java_236_GOF23设计模式_代理模式_静态模式_练习;
/**
-
接口
/
public interface Star {//明星
//属性
void confer();//confer协议
void signContract();//signContract签订合同
void bookTicket();//bookTicket订票
void sing();//唱歌
void collectMoney();//收款
}
//------------------ 创建一个明星-------------------------
package java_236_GOF23设计模式_代理模式_静态模式_练习;
/* -
创建一个明星
/
public class RealStar implements Star{//RealStar真正的明星
//重写方法
public void bookTicket() {
System.out.println(“RealStar.bookTicket()”);
}
public void collectMoney() {
System.out.println(“RealStar.collectMoney()”);
}
public void confer() {
System.out.println(“RealStar.confer()”);
}
public void signContract() {
System.out.println(“RealStar.signContract()”);
}
public void sing() {
System.out.println(“RealStar(张三本人).sing()”);
}
}
//-------------- 明星的代理---------------------------
package java_236_GOF23设计模式_代理模式_静态模式_练习;
/* -
明星的代理
*/
public class ProxyStar implements Star{// ProxyStar明星的代理private Star star;//创建属性
//构造器
public ProxyStar(Star star) {
super();
this.star = star;
}
public void bookTicket() {
System.out.println(“ProxyStar.bookTicket()”);
}
public void collectMoney() {
System.out.println(“ProxyStar.collectMoney()”);
}
public void confer() {
System.out.println(“ProxyStar.confer()”);
}
public void signContract() {
System.out.println(“ProxyStar.signContract()”);
}
public void sing() {
star.sing();//真实的引用
}
}
//----------------------------
package java_236_GOF23设计模式_代理模式_静态模式_练习;
/** -
测试类
*/
public class Client {
public static void main(String[] args) {
Star real = new RealStar();//真正的明星
Star proxy = new ProxyStar(real);//代理proxy.confer();//面谈 proxy.signContract();//签合同 proxy.bookTicket();//订票 proxy.sing();//安排唱歌 proxy.collectMoney();//收款
}
}
//--------------------结果---------------------------------
类图