设计模式学习-静态代理
/*静态代理
真实对象和代理对象都要实现同一个接口
代理对象要代理真绝角色
代理对象可以做很多事情
真实对象做自己的事情就好
*/
/*Thread类也是静态代理,
Thread和真实对象都实现Runnable接口 ,两者都要重写接口中的方法run,
new Thread(真实对象).start();
*/
public class StaticProxy {
public static void main(String[] args) {
WeddingComp weddingComp = new WeddingComp(new You());
weddingComp.happyMarry();
}
}
interface Marry{
void happyMarry();
}
class You implements Marry{
@Override
public void happyMarry() {
System.out.println("要结婚了");
}
}
class WeddingComp implements Marry{
private Marry target;
public Marry getTarget() {
return target;
}
public void setTarget(Marry target) {
this.target = target;
}
public WeddingComp(Marry target) {
this.target = target;
}
@Override
public void happyMarry() {
before();
this.target.happyMarry();
after();
}
void before(){
System.out.println("婚前");
}
void after(){
System.out.println("婚后");
}
}