扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Public Class ImageProxy Private done As Boolean Private tm As Timer Public Sub New() done = False '设置timer 延迟5秒 tm = New Timer(New TimerCallback(AddressOf tCallback), Me, 5000, 0) End Sub Public Function isReady() As Boolean Return done End Function Public Function getImage() As Image Dim img As Imager '显示预先的图像,直到实际图像载入完成 If isReady Then img = New FinalImage() Else img = New QuickImage() End If Return img.getImage End Function Public Sub tCallback(ByVal obj As Object) done = True tm.Dispose() End Sub End Class |
Public Interface Imager Function getImage() As image End Interface |
Public Class QuickImage Implements Imager Public Function getImage() As Image Implements Imager.getImage Return New bitmap("Box.gif") End Function End Class |
Public Class FinalImage Implements Imager Public Function getImage() As Image Implements Imager.getImage Return New Bitmap("flowrtree.jpg") End Function End Class |
Private imgProxy As ImageProxy Public Sub New() MyBase.New Form1 = Me InitializeComponent imgproxy = New ImageProxy() End Sub Protected Sub btLoad_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btLoad.Click pic.Image = imgProxy.getImage End Sub |
总结:
这只是一个很简单的例子(例子来自于《c#设计模式》),通过这个例子可以对代理(Proxy)有初步的认识!Adapter模式和代理模式(Proxy)都是在对象间构造一个简单的层。然而,Adapter模式向对象提供一个不同的接口,代理模式(Proxy)为对象提供相同的接口。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者