静态代理模式(StaticProxy)
1.真实的对象和代理对象都要实现同一个接口
2.代理对象呀是真实的角色
优点:
1.代理对象可以做很多真实对象做不了的事情
2.真实对象专注做自己的事情
`
interface Marry {
void HappyMarry();
}`
//真是角色,你去结婚 class You implements Marry{ @Override public void HappyMarry() { System.out.println("你要结婚了,超开心"); } }
`//代理角色,帮助你结婚
class WeddingCompany implements Marry{
//代理谁--》真实的目标角色
private Marry target;
public WeddingCompany(Marry target) {
this.target = target;
}
@Override
public void HappyMarry() {
before();
this.target.HappyMarry();//这就是真实角色
after();
}
private void after() {
System.out.println("结婚之后:收尾款 ");
}
private void before() {
System.out.println("结婚之前:布置现场");
}
}`
`public class StaticProxy{
public static void main(String[] args) {
//以前不需要代理模式的 操作
// You you = new You();
// you.HappyMarry();
new Thread(()-> System.out.println("我爱你")).start();
// WeddingCompany weddingCompany = new WeddingCompany(new You());
// weddingCompany.HappyMarry();
new WeddingCompany(new You()).HappyMarry();
}
}`
输出:
结婚之前:布置现场
你要结婚了,超开心
结婚之后:收尾款