Colección de citas famosas - Colección de máximas - Introducir el modo proxy (Proxy)

Introducir el modo proxy (Proxy)

Cuando el objeto que necesitamos usar es complejo o lleva mucho tiempo construirlo, podemos usar el modo proxy (Proxy). Por ejemplo, si construir un objeto requiere tiempo y recursos de la computadora, el modo proxy. (Proxy) nos permite controlar esta situación hasta que necesitemos usar el objeto real. Un proxy generalmente contiene los mismos métodos que el objeto que se usará. Una vez que comience a usar el objeto, estos métodos se pasarán al objeto real. el proxy. Algunos pueden usar el patrón de proxy ( Proxy)

Un objeto como una imagen grande tarda mucho en cargarse

Un resultado de cálculo que tarda mucho en completarse y debe calcularse antes de mostrar resultados intermedios durante el proceso

Un objeto que existe en una computadora remota necesita cargar el objeto remoto a través de la red, lo que llevará mucho tiempo, especialmente durante el período pico de transmisión de red

Un objeto solo tiene El modo proxy de acceso limitado (Proxy) puede verificar los permisos del usuario

El modo proxy (Proxy) también se puede utilizar para distinguir las solicitudes de una instancia de objeto del acceso real. Por ejemplo, durante el proceso de inicialización del programa

Se pueden crear varios objetos, pero no todos de inmediato. El modo proxy (Proxy) se puede usar para cargar. los objetos reales requeridos

Este es un proceso que debe cargarse y Un programa que muestra una imagen grande debe determinar qué imagen mostrar cuando se inicia el programa, pero la imagen real solo se puede mostrar después de completamente cargado! En este momento podemos usar el modo proxy (Proxy)

Este modo proxy (Proxy) puede retrasar la carga de la imagen real hasta que reciba una solicitud de pintura. Durante la carga de la imagen real que podemos usar. el modo proxy (Proxy) Precargue un gráfico relativamente pequeño y simple en la ubicación donde se mostrará la imagen real

Código de Image Proxy

Clase pública ImageProxy

Privado hecho como booleano

Privado tm como temporizador

Público Sub New()

hecho = Falso

amp # ;Set segundos de retraso del temporizador

p>

tm = New Timer( _

New TimerCallback(AddressOf tCallback) Me )

End Sub

Función pública isReady() como booleano

Retorno hecho

Función final

Función pública getImage() Como imagen

Dim img Como generador de imágenes

amp ;# ;Muestra la imagen previa hasta que se carga la imagen real

Si está listo entonces

img = New FinalImage()

Else

img = New QuickImage()

Finalizar si

Devolver img getImage

Finalizar función

Public Sub tCallba

ck(ByVal obj As Object)

done = True

tm Dispose()

End Sub

End Class

Definir una interfaz simple

Interfaz pública Imager

Función getImage() Como imagen

Interfaz final

Implementar la interfaz

Clase de imagen precargada

Clase pública QuickImage

Implementa Imager

Función pública getImage() como imagen _

Implementa Imager getImage

Devolver nuevo mapa de bits(amp;#;Box gifamp;#;)

Función final

Clase final

Clase que carga la imagen real

Clase pública FinalImage

Implementa Imager

Función pública getImage() como imagen _

Implementa Imager getImage

Devolver nuevo mapa de bits(amp; # ; flowrtree jpgamp; # ;)

Función final

Clase final

En Definir un proxy de imagen Instancia (Proxy) en el formulario que muestra la imagen y carga la imagen en el evento del botón cargar imagen

Private imgProxy As ImageProxy

Public Sub New()

p>

MyBase New

Form = Yo

InitializeComponent

imgproxy = New ImageProxy()

End Sub

Sub protegido btLoad_Click (remitente ByVal como objeto ByVal e como System EventArgs) maneja btLoad Click

pic Image = imgProxy getImage

End Sub

Resumen lishixinzhi/ Artículo/programa/ASP/201405/30785