代理模式(初学)

代理模式

一、什么是代理模式

  • 代理模式:为其他对象提供一种代理以控制对这个对象的访问

二、简单例子

代理模式(初学)_第1张图片

  • 这里面的骏骏就起到了代理的身份,而贵贵则是被代理的身份。

三、代码实现

1、用一个接口(GivingGifts)来保存送礼物的动作

  • package java_proxy;
    
    /**
     * 这是送礼物的接口,要送礼物就要实现接口
     */
    public interface GivingGifts {
    	void sendingDolls();   //送玩偶
    	void sendEarrings();   //送耳环
    	void sendingFlowers(); //送鲜花
    }
    

2、航航的类

  • 属性用于保存姓名

  • public class Gril {
    	public String name;
    	public Gril(String nameString){
    		this.name = nameString;
    	}
    }
    

3、被代理类(贵贵)

  • /**
     * 贵贵
     */
    public class Lmg implements GivingGifts{
    
    	 private Gril gril;   //要送东西的对象
    	 
    	 public Lmg(Gril gril) {
    		 this.gril = gril;  //通过构造器将要送东西的航航信息录进来
    	 }
    	@Override
    	public void sendingDolls() {
    		System.out.println("lmg送玩偶给"+gril.name);
    		
    	}
    	@Override
    	public void sendEarrings() {
    		System.out.println("lmg送耳环给"+gril.name);
    	}
    	@Override
    	public void sendingFlowers() {
    		System.out.println("lmg送鲜花给"+gril.name);
    	}
    
    }
    

4、代理类(骏骏)

  • /**
     * 代理类,代理lmg要做的事
     */
    public class Zzj implements GivingGifts{
    	
    	private Lmg lmg;   
    	
    	public Zzj(Gril gril) {   //将航航的信息通过lmg的构造器导入进去,因为lmg这个类不声明
    		lmg = new Lmg(gril);
    	}
    
    	@Override
    	public void sendingDolls() {
    		lmg.sendingDolls();
    	}
    
    	@Override
    	public void sendEarrings() {
    		lmg.sendEarrings();
    	}
    
    	@Override
    	public void sendingFlowers() {
    		lmg.sendingFlowers();
    	}
    
    }
    

5、测试代码

  • public class Main {
    	public static void main(String[] args) {
    		Gril lwh = new Gril("lwh");  //声明被送礼物的人的对象
    		Zzj zzj = new Zzj(lwh);  //声明代理类的对象,并将对方信息导入
    		zzj.sendingDolls();
    		zzj.sendEarrings();
    		zzj.sendingFlowers();
    	}
    }
    
  • 在这里插入图片描述

你可能感兴趣的:(代理模式)