實現靜態代理模式:
package ThreadTest;
//靜態代理模式:
//真實對象和代理對象都要實現同一個接口
//代理對象要代理真實角色
//好處:
//代理對象可以做很多真實對象做不了的事情
//真實對象專注做自己的事情
public class StaticProxy {
public static void main(String[] args) {
//你要結婚
You you = new You();
WeddingCompany weddingCompany = new WeddingCompany(you);
weddingCompany.HappyMarry();
}
}
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 before(){
System.out.println("結婚之前,佈置現場");
}
private void after(){
System.out.println("結婚之後,收尾款");
}
}
運行結果: