代理模式(Java)
下面是关于我所写的所有设计模式代码(还是建议自己手打或者想一个别的例子练习一次) (https://github.com/lihang212010/DesignPatterns-/tree/master/designpatterns/src)
先来一个比较正规的UML
然后是我这个例子的图片 大体说下我这个例子,假如一个男孩捡到一本书,书是一个女生的,恰好男孩的一个女性朋友认识书的原主人,于是男孩把书给了他朋友,朋友还回了书。 这个男孩的朋友便是一个代理,使这个男孩不用见到书的原主人还回书的代理者。
代理者的思想便是这样,通过一个中间者实现功能。而这个中间者也就是朋友,只需要调用男孩的方法就可以实现还书操作。
代理模式应用有4种但意思太过虚拟,我就简单举个例子, 平常我们上网看图片,有的时候网络差,我们经常看到一张图片框,然后过一会,我们想要看到的图片才会出来,这个叫虚拟代理,是代理模式的一种应用。
代码在下面
接口
public interface Proxy {
void Give();
}
男孩
public class Boy implements Proxy{
@Override
public void Give() {
System.out.print("还书");
}
}
朋友
public class Girl implements Proxy{
Boy boy;
public Girl() {
boy=new Boy();
}
@Override
public void Give() {
// TODO Auto-generated method stub
boy.Give();
}
}
主方法
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Girl girl=new Girl();
girl.Give();
}
}