執行緒底部實現原理:靜態代理模式
阿新 • • 發佈:2021-07-20
執行緒底部實現原理:靜態代理模式
案例:
package multithreading; import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput; // 靜態代理模式總結 // 真實物件和代理物件都要實現同一介面 // 代理物件要代理真實角色 // 使用靜態代理的好處:1.代理物件可以做很多真實物件做不了的事情 2.真實物件可以專注做自己的事情 public class StaticProxy { public static void main(String[] args) { You you = new You(); // 真實物件 // you.HappyMarry(); // 不使用代理 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{ // 代理誰?-->真實目標角色target 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("結婚之後,收尾款"); } }
執行結果:
使用靜態代理的好處:
1.代理物件可以做很多真實物件做不了的事情
2.真實物件可以專注做自己的事情