Está en la página 1de 4

icialización diferida

Con inicialización diferida, el objeto a ser cargado de manera diferida es


originalmente asignado como un valor nulo y cada petición para el objeto verifica
si es nulo y lo crea "sobre la marcha" antes de devolverlo, como puede verse en
este ejemplo escrito en C#:

private int myWidgetID;


private Widget myWidget = null;

public Widget MyWidget


{
get
{
if (myWidget == null)
{
myWidget = Widget.Load(myWidgetID);
}

return myWidget;
}
}
O con el operador coalescente para nulidad '??'

private int myWidgetID;


private Widget myWidget = null;

public Widget MyWidget


{
get { return myWidget = myWidget ?? Widget.Load(myWidgetID); }
}
Este método es el más sencillo de implementar, sin embargo si nulo es un valor
legítimo, puede hacerse necesario usa un objeto como placeholder para indicar que
no ha sido incializado.

Proxy virtual
Es un objeto con la misma interfaz que el objeto real. La primera vez que su método
es llamado carga el objeto real y lo delega.

Fantasma
Un "fantasma" es el objeto que se quiere cargar en un estado parcial. Pues solo
contener el identificador del objeto, pero carga sus propios datos desde la primera
vez que una de sus propiedades sea accedida. Por ejemplo, considere que el usuario
está a punto de hacer una petición de contenido desde un formulario en línea. Al
momento de la creación todo lo que sabemos es que se accederá a cierto contenido,
pero que cómo o a qué contenido se desconoce aún. Ejemplo con PHP:

$usrData = array (
"UID" = > uniqid(),
"requestTime" => microtime( true ),
"dataType" => "",
"request" => "",
);

if (isset( $_POST['data'] ) && $usrData) {


//...

}
Contenedor de Valor
Un Contenedor de Valor es un objeto genérico que se encarga del comportamiento de
la inicialización diferida y aparece en lugar de los campos del objeto:

private ValueHolder<Widget> valueHolder;

public Widget MyWidget


{
get
{
return valueHolder.GetValue();
}
}

icialización diferida
Con inicialización diferida, el objeto a ser cargado de manera diferida es
originalmente asignado como un valor nulo y cada petición para el objeto verifica
si es nulo y lo crea "sobre la marcha" antes de devolverlo, como puede verse en
este ejemplo escrito en C#:

private int myWidgetID;


private Widget myWidget = null;

public Widget MyWidget


{
get
{
if (myWidget == null)
{
myWidget = Widget.Load(myWidgetID);
}

return myWidget;
}
}
O con el operador coalescente para nulidad '??'

private int myWidgetID;


private Widget myWidget = null;

public Widget MyWidget


{
get { return myWidget = myWidget ?? Widget.Load(myWidgetID); }
}
Este método es el más sencillo de implementar, sin embargo si nulo es un valor
legítimo, puede hacerse necesario usa un objeto como placeholder para indicar que
no ha sido incializado.

Proxy virtual
Es un objeto con la misma interfaz que el objeto real. La primera vez que su método
es llamado carga el objeto real y lo delega.

Fantasma
Un "fantasma" es el objeto que se quiere cargar en un estado parcial. Pues solo
contener el identificador del objeto, pero carga sus propios datos desde la primera
vez que una de sus propiedades sea accedida. Por ejemplo, considere que el usuario
está a punto de hacer una petición de contenido desde un formulario en línea. Al
momento de la creación todo lo que sabemos es que se accederá a cierto contenido,
pero que cómo o a qué contenido se desconoce aún. Ejemplo con PHP:

$usrData = array (
"UID" = > uniqid(),
"requestTime" => microtime( true ),
"dataType" => "",
"request" => "",
);

if (isset( $_POST['data'] ) && $usrData) {


//...

}
Contenedor de Valor
Un Contenedor de Valor es un objeto genérico que se encarga del comportamiento de
la inicialización diferida y aparece en lugar de los campos del objeto:

private ValueHolder<Widget> valueHolder;

public Widget MyWidget


{
get
{
return valueHolder.GetValue();
}
}
icialización diferida
Con inicialización diferida, el objeto a ser cargado de manera diferida es
originalmente asignado como un valor nulo y cada petición para el objeto verifica
si es nulo y lo crea "sobre la marcha" antes de devolverlo, como puede verse en
este ejemplo escrito en C#:

private int myWidgetID;


private Widget myWidget = null;

public Widget MyWidget


{
get
{
if (myWidget == null)
{
myWidget = Widget.Load(myWidgetID);
}

return myWidget;
}
}
O con el operador coalescente para nulidad '??'

private int myWidgetID;


private Widget myWidget = null;

public Widget MyWidget


{
get { return myWidget = myWidget ?? Widget.Load(myWidgetID); }
}
Este método es el más sencillo de implementar, sin embargo si nulo es un valor
legítimo, puede hacerse necesario usa un objeto como placeholder para indicar que
no ha sido incializado.

Proxy virtual
Es un objeto con la misma interfaz que el objeto real. La primera vez que su método
es llamado carga el objeto real y lo delega.

Fantasma
Un "fantasma" es el objeto que se quiere cargar en un estado parcial. Pues solo
contener el identificador del objeto, pero carga sus propios datos desde la primera
vez que una de sus propiedades sea accedida. Por ejemplo, considere que el usuario
está a punto de hacer una petición de contenido desde un formulario en línea. Al
momento de la creación todo lo que sabemos es que se accederá a cierto contenido,
pero que cómo o a qué contenido se desconoce aún. Ejemplo con PHP:

$usrData = array (
"UID" = > uniqid(),
"requestTime" => microtime( true ),
"dataType" => "",
"request" => "",
);

if (isset( $_POST['data'] ) && $usrData) {


//...

}
Contenedor de Valor
Un Contenedor de Valor es un objeto genérico que se encarga del comportamiento de
la inicialización diferida y aparece en lugar de los campos del objeto:

private ValueHolder<Widget> valueHolder;

public Widget MyWidget


{
get
{
return valueHolder.GetValue();
}
}

También podría gustarte