











代理(Proxy)模式
应用实例1

using System;
using System.Drawing;
namespace Proxy
{
/// <summary>
/// Summary description for Imager.
/// </summary>
public interface Imager
{
Image getImage();
}
}
using System;
using System.Drawing;
namespace Proxy
{
/// <summary>
/// Summary description for QuickImage.
/// </summary>
public class QuickImage : Imager
{
public QuickImage() { }
public Image getImage()
{
return new Bitmap("Box.gif");
}
}
}
using System;
using System.Drawing;
namespace Proxy
{
/// <summary>
/// Summary description for FinalImage.
/// </summary>
public class FinalImage : Imager
{
public FinalImage() { }
public Image getImage()
{
return new Bitmap("flowrtree.jpg");
}
}
}
using System;
using System.Drawing;
using System.Threading;
namespace Proxy
{
/// <summary>
/// Summary description for ImageProxy.
/// </summary>
public class ImageProxy
{
private bool done;
private Timer timer;
//-----
public ImageProxy()
{
//定时调用方法,如果调用成功则进行标记
//5000为延迟
timer = new Timer(new TimerCallback(timerCall), this, 10000, 0);
}
//-----
private void timerCall(object obj)
{
done = true;//如果调用成功则进行标记
timer.Dispose();
}
//-----
public Image getImage()
{
Imager img;
if (done)
img = new FinalImage();
else
img = new QuickImage();
return img.getImage();
}
}
}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。