Data Model & Singleton pattern - Presentation Transcript
Data Model Singleton pattern Ricardo Poblete Jara Flex, Actionscript3
Agenda
Razones
Objetivos
MVC . Capa de vista y de modelo.
Data Model
Patrón Singleton
Práctica
Razones
Razones
¿Por qué?
Al particionar la aplicaciones en componentes, se hace mas difícil comunicar información entre estos.
Cada componente busca sus propios datos.
Implicando nuevas conexiones
En un módulo, un set de componentes están asociados a un conjunto de datos particular.
¿Quiénes participan?
Componentes y el modelo de datos
Objetivos
Objetivos
General
Conceptualizar y Comprender el modelo de datos en AS3 para generar componentes de alta comunicación.
Específico
Capacidad de conceptualizar el modelo de datos
Fabricar propios modelos
Seguir incorporando el concepto MVC (Modelo, Vista, Controlador) dentro de la aplicación.
Model View Controller (I) Capa de vista
Model View Controller (I) Capa de Modelo
Modelo de datos (Model)
Data Model
Concentra la información de un módulo de la aplicación.
Mantiene el estado del cliente
Almacena los Value Objects
Value Object
Representan “Objetos” conceptuales del dominio.
Pueden representar: Persona, Auto, Item, Cuenta corriente, Dirección, etc. (en singular)
Físicamente es una clase que administra datos.
Value Object (II)
Ejemplo
package model
{
[Bindable]
public class ContactoVO
{
public var nombre:String;
public var email:String;
public var telefono:String;
public var descripcion:String;
}
}
Data Model (II)
El modelo apoya con la información que muestran las interfaces (Vistas)
Físicamente es una clase.
Principalmente tiene propiedades donde almacena los datos.
Cuentas Corrientes (un array de cuenta corriente VO)
Direcciones (un array de direcciones de alguien)
Usuario conectado
Estado visible de la aplicacción.
Data Model (III)
Ejemplo
package model
{
import mx.collections.ArrayCollection;
[Bindable]
public class ModeloEjemplo
{
public var fechaActual:String;
public var Contactos:ArrayCollection;
public var contactoSeleccionado:ContactoVO;
public var BandejaSalida:ArrayCollection;
public var correoSeleccionado:CorreoVO;
}
}
Singleton
Singleton
El patrón de diseño singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase.
Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella.
Es útil en el modelo de datos, ya que este centraliza los datos de nuestra aplicación
Tiene desventajas, no abusar
Singleton (II)
Ejemplo
// Singleton class:
package model{
public class SingletonClass {
private static var instance:SingletonClass;
private static var allowInstantiation:Boolean;
public static function getInstance():SingletonClass {
if (instance == null) {
allowInstantiation = true;
instance = new SingletonClass();
allowInstantiation = false;
}
return instance;
}
public function SingletonClass():void {
if (!allowInstantiation) {
throw new Error("Error: Instantiation failed: Use SingletonClass.getInstance() instead of new.");
}
}
}
}
Práctica
Práctica - Ejercicio
Funcionalidad
Fabricar una mini aplicación que permita tener una lista de contactos, donde almacene (nombre, email telefono y descripcion), que permita sólo agregar nuevos.
Además les puedo enviar emails, por lo que seleccionando un contacto de la lista puedo enviarle un correo y finalmente pueda ver mi bandeja de salida los mensaje que he enviado.
0 comments
Post a comment