Diagramas de secuencia para proyectos
- Diagrama de secuencia para agregar un nuevo producto.
Se inicia desde la clase principal y seleccionamos la opción para agregar un nuevo producto y en esa clase se ingresan los datos que van a la base de datos donde después se realizara una comprobación y si todo esta correcto vamos a guardarlo y para finalizar se regresaran los valores para mostrarlos en una lista en la clase principal.
Elaborado con la herramienta online:
Patrones de diseño
Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Patrones estructurales
Flyweight
Definición: El patrón Flyweight sirve para eliminar o reducir la redundancia cuando tenemos gran cantidad de objetos que contienen información idéntica, además de lograr un equilibrio entre flexibilidad y rendimiento (uso de recursos).
Explicacion: El patrón nos permite reducir la cantidad de instancias de un objeto, esto se logra mediante la compartición de una misma instancia.
Se utiliza en situaciones donde tenemos objetos con varios atributos que se mantienen iguales.
Pasos para aplicar el patrón
1. Asegúrese que el rendimiento en los objetos es un tema primordial, y si el cliente esta dispuesto a asumir el reajuste
2. Divida el objetivo principal en estados: Estado Intrínseco (elementos que se puedan compartir o son comunes) y Estado Extrínseco (elementos particulares a cada tipo)
3. Retire los elementos con estado extrínseco de los atributos de la clase, y añádale más bien una llamada a métodos
4. Crear una fábrica que pueda almacenar y reutilizar las instancias existentes de clases
5. El cliente debe usar la fábrica en vez de utilizar el operador new si requiere de creación de objetos
6. El cliente (o un tercero) debe revisar los estados extrínsecos, y reemplazar esos estados a métodos de la clase
El utilizar este patrón trae consigo algunas ventajas como por ejemplo el reducir el espacio en memoria o los datos en un servidor.
Y una desventaja al utilizarlo seria que al momento de buscar dentro de la clase tomaría mas tiempo ya que las características serian muy parecidas y necesitaríamos buscar con un poco mas de precisión lo que necesitemos.
Patrones creacionales
Prototype
Definición: El patrón de diseño Prototype (Prototipo), tiene como finalidad crear nuevos objetos duplicándolos, clonando una instancia creada previamente.
Explicación: Este patrón es motivo donde en ciertos escenarios es preciso abstraer la lógica que decide qué tipos de objetos utilizará una aplicación, de la lógica que luego usarán esos objetos en su ejecución. Los motivos de esta separación pueden ser variados.
Ejemplo en Java:
// Los productos deben implementar esta interface public interface Producto extends Cloneable { Object clone(); // Aqui van todas las operaciones comunes a los productos que genera la factoria } // Un ejemplo basico de producto public class UnProducto implements Producto { private int atributo; UnProducto(int atributo) { this.atributo = atributo; } public Object clone() { return new UnProducto(this.atributo); } public String toString() { return ((Integer)atributo).toString(); } } // La clase encargada de generar objetos a partir de los prototipos public class FactoriaPrototipo { private HashMap mapaObjetos; private String nombrePorDefecto; public FactoriaPrototipo() { mapaObjetos = new HashMap(); // Se incluyen al mapa todos los productos prototipo mapaObjetos.put("producto 1", new UnProducto(1)); } public Object create() { return create(nombrePorDefecto); } public Object create(String nombre) { nombrePorDefecto = nombre; UnProducto objeto = (UnProducto)mapaObjetos.get(nombre); return objeto != null ? objeto.clone() : null; } } public class PruebaFactoria { static public void main(String[] args) { FactoriaPrototipo factoria = new FactoriaPrototipo(); Producto producto = (Producto) factoria.create("producto 1"); System.out.println ("Este es el objeto creado: " + producto); } } |
Patrones de comportamiento
Visitor
Definición: El patrón visitor también especifica cómo sucede la interacción en la estructura del objeto. En su versión más sencilla, donde cada algoritmo necesita iterar de la misma forma, el método accept de un elemento contenedor, además de una llamada al método visit del objeto visitor, también pasa el objeto visitor como argumento al llamar al método accept de todos sus elementos hijos
Explicación: (Imagen 4) La idea básica es que se tiene un conjunto de clases elemento que conforman la estructura de un objeto. Cada una de estas clases elemento tiene un método aceptar (accept()) que recibe al objeto visitador (visitor) como argumento.
Bibliografía:
http://es.wikipedia.org/wiki/Flyweight_(patrón_de_diseño)
No hay comentarios:
Publicar un comentario