您的位置:首页 > 编程语言 > Java开发

java设计模式----代理模式

2015-11-30 15:08 501 查看
代理模式使用了多态,主要是便于扩展,代理类和被代理类使用的是同一个接口。

代码演示,先创建一个接口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


主要好处在于,以后要添加新的被代理类不需要改动原来的代理类代码,只需要实现接口就行,解耦合。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: