个人java学习路线-代理设计(一)
玩游戏的人需要知道游戏为什么能运作吗?不需要,我们只管玩就行了,其他的不归我们管。
这是java开发实战经典中的例子,即上网代理。
用户只要上网就行,其他复杂的事由代理完成,即代理设计。
public interface Network {
void browse();
}
class Real implements Network { //上网操作
@Override
public void browse() {
System.out.println("网上冲浪");
}
}
class Proxy implements Network{ //代理上网
private Network network;
public Proxy(Network network) { // 加入上网操作
this.network = network;
}
public void check(){ //上网相关其他操作
System.out.println("检查网络....");
}
@Override
public void browse() {
this.check(); //可以加入很多其他操作
this.network.browse();
}
}
class Demo{
public static void main(String[] args) {
Network net=new Proxy(new Real());
net.browse();//用户只关心上网,其他代理自动进行
}
}
输出结果:
检查网络....
网上冲浪