23种设计模式之静态代理模式

//23种设计模式之静态代理模式。
// 运用领域(线程创建的时候, Thread实现了Runnable接口 new Thread(真实目标对象).start() )
// 类比(你要结婚,举办婚礼得时候 婚庆公司 实现了 结婚的接口 new WeddingCompany(真实要结婚的对象).HappyMarry() )
// 比如你要结婚了,你只需要做结婚这件事情,婚庆公司帮你做 选饭店,布置现场,收尾款,订衣服,约朋友,主持婚礼,而你只需要做 结婚 这件事,其他事情 不用管

public class StaticProxy {

public static void main(String[] args) {
You you =new You();
WeddingCompany company=new WeddingCompany(you);
company.HappyMarry();
}
}



//结婚接口
interface Marry{
void HappyMarry();
}

//真实角色: you 你 去结婚
class You implements Marry{
@Override
public void HappyMarry() {
System.out.println("鲁迅要结婚了,很开心");
}

}

//代理角色: 婚庆公司:WeddingCompany
class WeddingCompany implements Marry{

//目标对象,真实要结婚的人
private Marry target;

public WeddingCompany(Marry target) {
this.target = target;
}

@Override
public void HappyMarry() {
before();
target.HappyMarry();
after();
}

private void before() {
System.out.println("结婚之前,布置现场");
}

private void after() {
System.out.println("结婚之后,收尾款");
}
}

//输出结果
23种设计模式之静态代理模式
上一篇:SDNLAB技术分享(五):浅谈Open vSwitch移植


下一篇:Azure powershell使用平台镜像创建ARM非托管磁盘虚拟机