zoukankan      html  css  js  c++  java
  • java设计模式----代理模式

    代理模式使用了多态,主要是便于扩展,代理类和被代理类使用的是同一个接口。

    代码演示,先创建一个接口Women。

    Women.java

    package proxy;
    
    public interface Women {
    	public void eat();
    	public void paly();
    
    }
    

    创建两个要被代理的类,实现Women接口。

    Juli.java

    package proxy;
    
    public class Juli implements Women{
    
    	@Override
    	public void eat() {
    		System.out.println("i'm Juli,i love eat banana");
    	}
    
    	@Override
    	public void paly() {
    		System.out.println("i'm Juli,i love swimming");
    	}
    
    }
    

    Lily.java

    package proxy;
    
    public class Lily implements Women{
    
    	@Override
    	public void eat() {
    		System.out.println("i'm Lily,i love eat apple");
    		
    	}
    
    	@Override
    	public void paly() {
    		System.out.println("i'm Lily, i love play football");
    	}
    
    }
    

    创建一个代理类Proxy:

    proxy.java

    package proxy;
    
    public class Proxy implements Women {
    	private Women women;
    	public Proxy() {
    		this.women = new Lily();//默认是Lily
    	}
    	public Proxy(Women women){
    		this.women=women;
    	}
    	@Override
    	public void eat() {
    		this.women.eat();
    	}
    
    	@Override
    	public void paly() {
    		this.women.paly();
    	}
    
    }
    

    Test:

    package proxy;
    
    public class Test {
    	public static void main(String[] args) {
    		Proxy p;
    		p=new Proxy();
    		p.eat();
    		p.paly();
    		Juli j=new Juli();
    		p=new Proxy(j);
    		j.eat();
    		j.paly();
    	}
    
    }
    

    测试结果:

    i'm Lily,i love eat apple
    i'm Lily, i love play football
    i'm Juli,i love eat banana
    i'm Juli,i love swimming
    

    主要好处在于,以后要添加新的被代理类不需要改动原来的代理类代码,只需要实现接口就行,解耦合。

  • 相关阅读:
    事事浑不着意,总得有走心的地方
    Struts2框架概述
    java算法数据结构
    shell十三问(转)
    linux:将job放在后台执行的方法
    Python性能(转)
    python collections deque
    python中的参数传递和返回值
    python中的下划线
    python学习笔记glob模块
  • 原文地址:https://www.cnblogs.com/JAYIT/p/5007217.html
Copyright © 2011-2022 走看看