03 03 2020 - MatRJ08/Portafolio_DatosII GitHub Wiki

Temas

Relizacion

Modelo dinamico

Digrama de componentes

Diagrama deployement

Patrondes de diseño


Digrama de componentes

  • Relacion entre modulos *Modulo (Paquete de clases)

Diagrama deployement

  • Requeriminetos para poder hacer deploy
    • Ya sea update o lanzamiento

Diagrama de secuencia

Formaliza el comportamiento dinámico de un sistema y visualizar la comunicación de objetos

Patrones de diseño

Regularidad discernible

Resolución general en un contexto especifico y relacionado a software

  • Es solo una guía, se debe adaptar a la solución del problema

Cada patrón posee 4 cosas

  • Nombre
  • Problema
  • Solución
  • Consecuencia
    • Ventajas
    • Desventajas

Pueden ser clasificados por dos criterios

  • Propósito: que hace cada uno.
    • Creacional: Abstrae el proceso de instanciacion
      • Encapsulan el conocimiento acerca de que clases concretas usa el sistema
      • Esconde el proceso de instanciacion
    • Estructural: composición de clases u objetos para crear estructuras mas grandes. O para poder agregar nuevas funcionalidades
    • Comportamiento: están relacionados en la forma en la que se le asigna responsabilidades a las clases y objetos
  • Alcance: Clases o Objetos

Builder

Separa la construcción de un objeto complejo en diferentes procesos de construcción

Aplica cuando se debe crear un objeto complejo y la creación de sus partes deben ser independientes

Consecuencias:

  • Oculta la ensamblación del objeto
  • Oculta la estructura interna del objeto
  • El cliente solo manda a crear
  • Los directores pueden reutilizar diferentes builder
  • El director retorna hasta que el producto este terminado

Facade

Provee una interfaz unificada a un conjunto de interfaces internas.

Permite que la interacción con el usuario sea más sencilla

  • El cliente usa el Facade y el facade entra a los objetos del subsistema
  • Desacopla al cliente de los sistemas

Consecuencias:

  • Hace que los subsistemas sean mas fáciles de usar, al ocultárselos al cliente
  • Tiene un bajo acoplamiento entre el cliente y los subsistemas
  • Puede ser complicado cortar la coneccion entre el cliente y los subsistemas

Adapter

Hace dos identidades compatibles

  • Aplica cuando dos clases son incompatibles
    • Se puede utilizar para reutilizar una clase existente y no tener que editarla

Consecuencias:

  • En clases
    • No sirve para adaptar una clase y todas sus subclases
    • Deja sobrescribir el comportamiento del adaptado
  • En objetos
    • Puede agregar funcionalidad a todos los adaptados e incluso a sus subclases
    • Difícil de sobrescribir el comportamiento de los adaptados

Observer

Define una dependencia donde cuando un objeto cambia, otros objetos deben ser informados o actualizar su información

  • Los observados no saben cuantos observados hay
  • Aplica cuando
    • Un elemento depende de otro
    • El cambio en un objeto requiere cambiar otro

Consecuencias:

  • Permite una distribución masiva
  • Cunado notifica no sabe el costo de esa notificación

Cadena de responsabilidad

Evita el acoplamiento entre el que envía la solicitud y los que pueden atenderla

  • Cuando el cliente genera la solicitud esta se propaga entre los que pueden atenderla

Aplica cuando no hay nada en especifico que pueda atender la solicitud

Consecuencias:

  • Reduce el acoplamiento entre el que envía y el que recibe
  • Agrega flexibilidad entre asignación de responsabilidades
  • No garantiza que la solicitud sea atendida