1. 程式人生 > >android設計模式——代理者模式

android設計模式——代理者模式

定義:也稱委託模式,為其他物件提供一種代理以控制對這個物件的訪問。

使用場景:有些物件由於某些原因(比如物件建立開銷很大,或者某些操作需要安全控制,或者需要程序外的訪問),直接訪問會給使用者或者系統結構帶來很多麻煩,我們可以在訪問此物件時加上一個對此物件的訪問層。

應用舉例:支票可以當錢的使用,律師代表幫人打官司。

類圖:

  1. Subject:抽象主題類,宣告真實與代理共同的介面方法,可以是一個抽象方法,也可以是一個介面。
  2. RealSuject:真實主題類,定義代理的所表示的真實物件,由其執行具體的業務邏輯
  3. ProxySubject:代理類,在實現的介面方法中呼叫真是主題中相應的介面方法執行。
  4. Client: 客戶類

關鍵程式碼:實現與被代理類組合

優點:

  1. 職責清晰。
  2. 高擴充套件性。
  3. 智慧化。

缺點:

  1. 因為客戶端和真實主題之間增加了代理類,所以有些請求可能會變慢。
  2. 有些代理類實現起來需要額外的工作,實現起來非常複雜
abstract class Subject{
	public abstract void visit();
	
}
 class RealSubject  extends Subject{

	@Override
	public void visit() {
		// TODO 自動生成的方法存根
		System.out.println("真正的Subject");
	}
	
}

 class ProxySubject extends Subject{
	 
	 private RealSubject realSubject;
	 
	 public  ProxySubject(RealSubject realSubject) {
		// TODO 自動生成的建構函式存根
		 this.realSubject = realSubject;
		 
	}

	@Override
	public void visit() {
		// TODO 自動生成的方法存根
		realSubject.visit();
	}
	 
 }

主程式

public static void main(String[] args) {
		// TODO 自動生成的方法存根
		
		
		RealSubject realSubject = new RealSubject();
		
		ProxySubject proxySubject = new ProxySubject(realSubject);
		
		proxySubject.visit();
		
	}

程式截圖