Mostrando entradas con la etiqueta proxy virtual. Mostrar todas las entradas
Mostrando entradas con la etiqueta proxy virtual. Mostrar todas las entradas

PATRONES DE DISEÑO: PROXY VIRTUAL

Posted: lunes, 26 de diciembre de 2011 by Skuarch in Etiquetas: ,
0


Proxy virtual se utiliza para no tener que estar creando objectos constantemente, especialmente si estos objetos son dificiles o costosos de hacer, un ejemplo de un objeto costoso puede ser la carga de una imagen y la imagen es de un gran tamano, para poder utilizar este patron de diseno se siguen estos pasos.

Crear una clase abstracta
public abstract class Graphic {
public void draw();
}
Creamos una clase que herede de la clase abstracta y sobre escriba el unico metodo de la clase padre


public class Image extends Graphic {
public void draw() { ... }
}

Ahora crearemos una tercera clase que tambien herede de la clase abstracta, tambien sobre escribira el 
mismo metodo pero este se asegura de que el objecto no haya sido creado anteriormente

public class ImageProxy extends Graphic {
private Image _image;
private String _fileName;
public ImageProxy (String fileName) {
_fileName = fileName;
_image = null;
}

public void draw () {
if (_image==null)
_image = loadImage(_fileName);
_image.draw();
}
}
La forma de de utilizar este patron de diseno es la siguente:

Graphic g = new ImageProxy(“imagen.gif”);

Asi evitaremos que se esten creando objetos constantemente