静态代理

1.静态代理的角色分析:

代理代理,根据词意就可以知道是让别人来替你做事情,其中必然牵扯到权利的赋予,下面先来介绍一下其中的几个角色

抽象角色---一般使用接口或者抽象类来实现

真实角色---被代理的角色(就是你本人)

代理角色---代理真实角色---代理真实角色后一般会做一些附属的操作(替你做事情的人)

客户---使用代理角色来进行一些操作(就是具体的实现了)

 

还是不清楚,下面的demo来慢慢感觉代理,代码实现租房子,,,中介,房主,租房子的人

2.代码实现

  1. Rent.java--抽象角色
    public interface Rent {	
    	public void rent();
    }

     

  2. Host.java真实角色
    public class Host implements Rent{
    	public void rent(){
    		System.out.println("房屋出租................");
    	}
    }

     

  3. Proxy.java代理角色
    public class Proxy implements Rent{	
        //把业务交给代理来完成,代理需要依赖于真实角色
    	private Host host;	
    	public Proxy(Host host) {
    		this.host = host;
    	}
    	public void setHost(Host host) {
    		this.host = host;
    	}
    	//租房
    	public void rent(){
    		seeHouse();
    		host.rent();
    		fare();
    	}
    	//看房
    	private void seeHouse(){
    		System.out.println("带房客看房..............");
    	}
    	//收中介费
    	private void fare(){
    		System.out.println("收取中介费..............");
    	}
    }

     

  4. Client.java客户角色
    public class Client {	
    	public static void main(String[] args) {
    		Host host=new Host();
    		Proxy proxy=new Proxy(host);
    		proxy.rent();
    	}
    }

    简单的用图来描述一下

 

 

 

 

3.使用静态代理

处好

  • 使得真实角色处理的业务更加的纯粹,不再去关注一些公共的事情
  • 公共的业务由代理来完成----实现业务的分工
  • 公共业务发生扩展时变得更加集中和方便

缺点

  • 类多了---多了代理类

 

 

 

 

 

 

 

 

posted @ 2022-07-04 16:45  _SpringCloud  阅读(2)  评论(0编辑  收藏  举报  来源