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();
		
	}

程序截图

猜你喜欢

转载自blog.csdn.net/l1094125040/article/details/83385390
今日推荐