java中的静态代理
静态代理小故事
有一天,小杰想结婚了,但是小杰懒得自己去布置婚礼现场,这时候,有个人告诉他不用自己置办婚礼也可以结婚,酒店可以代办,小杰异常高兴,觉得这很符合自己当前的需求,所以高高兴兴去酒店找老板定制了自己的婚礼,老板也很快帮小杰办好了婚礼,一切都显得那么和谐!
当你需要一个房子,但是你不好直接找到房主,所以你找到了中介,中介帮你找到了房子,中介就是你的代理
话不多说,上代码
package com.jie;
/**
* @author wei zhijie
* @version 1.0
* @date 2021/1/6
*/
/*
静态代理模式
真实对象和代理对象都要实现同一个接口
代理对象必须要代理真实角色
好处
//代理对象可以做很多真实对象做不了的事情
//真实对象专注于做自己的事
*/
public class StaticProxy {
public static void main(String[] args) {
WeddingCompany weddingCompany = new WeddingCompany(new You());
weddingCompany.HappyMaray();
}
}
interface Marry{
void HappyMaray();
}
//真实角色,你去结婚
class You implements Marry{
@Override
public void HappyMaray() {
System.out.println("杰要结婚了,");
}
}
//代理
class WeddingCompany implements Marry{
//代理谁,真实目标角色
private Marry target;
public WeddingCompany(Marry target){
this.target=target;
}
@Override
public void HappyMaray() {
after();
//这就是真实角色
this.target.HappyMaray();
before();
}
private void after() {
System.out.println("结婚以前,布置现场");
}
private void before() {
System.out.println("结婚之后,收尾款");
}
再来看一下运行结果