1. 程式人生 > >設計模式之靜態代理

設計模式之靜態代理

一、靜態代理( 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("婚禮結束......");
				
			}
			
}




輸出結果