智能指引模式中,代理在访问对象时执行了一些附加操作,典型用途包括:实际对象引用计数,例如统计一个页面被访问了多少次。
比如:
呜呜呜,我这惨淡的访问量(快用点赞安慰我!)
同样画出类图:
看代码框架
package Guide;
public interface IPage {
public void display();//显示页面
}
class Page implements IPage{
private String url;
public Page(String url)
{
this.url=url;
}
public void display(){
System.out.println("Content from"+url);
}
}
package Guide;
public class PageProxy implements IPage{
private IPage page;
private int count=0;
public PageProxy(IPage page)
{
super();
this.page=page;
}
public void display()
{
updateCount();
page.display();
}
private void updateCount()
{
System.out.println("Visits:"+(++count));
}
}
package Guide;
public class Client {
public static void main(String arg[])
{
IPage pageProxy=new PageProxy(new Page(" www.baidu.com"));
pageProxy.display();
pageProxy.display();
}
}
输出结果: