設計模式之靜態代理
阿新 • • 發佈:2018-12-21
一、靜態代理( Static proxy)
1.真實代理
2.代理角色 持有真實角色的應用
3.二者實現相同的介面
比如 結婚
你要結婚了,你要去找婚慶公司(weddingCompany類)來給主持,主辦(婚慶公司相當於代理),你(You類)就什麼都不管都給婚前公司主辦( 你就相當於真實的角色,你是主角)。
建立一個介面,Marry 是weddingCompany和You類共同實現的介面。
package Thread.ThreadDemo02; public class StaticProxy { public static void main(String[] args) { // TODO Auto-generated method stub //建立真實角色 You you = new You(); //建立代理模式+真實引用 weddingCompany com = new weddingCompany(you); //執行 com.marry(); } } interface Marry{ //共同的介面 void marry(); //抽象的方法 public abstract() } //真實的角色 class You implements Marry{ @Override public void marry() { System.out.println("你 和 她結婚 ...."); } } //代理角色 class weddingCompany implements Marry{ private You you; public weddingCompany(You you) { super(); this.you = you; } public weddingCompany() { super(); } @Override public void marry() { before(); you.marry(); after(); } private void before() { System.out.println("佈置婚房....."); } private void after() { System.out.println("婚禮結束......"); } }
輸出結果