SOFTWARE PARA PAGOS DE
SUELDOS
Patrones de Diseño
Integrantes: José Luis Rocha V.
Claudia Martínez S.
Ricardo Ferré M.
SOFTWARE PARA PAGOS DE SUELDOS

Justificación del proyecto

EL problema que tiene la empresa Café Amboró
referente al pago de sueldos es la
inconsistencia de información puesto que la
realización de su planilla la hace a través de
una hoja de Excel, lo que hace que el
almacenamiento de la información no sea
confiable. Para lo cual el desarrollo de este
software pretende dar solución a los problemas
de la empresa, tratando de cumplir con todos
sus requerimientos.
 Propósito de los patrones
 Fundamentos de diseño.
 Clasificación de Patrones
•Creación.
•Estructurales
–Factory Method
–Adapter
–Singleton
–Facade
–Abstract
Factory
–Composite
•Comportamiento
–Command
–State
–Observer
Propósito de los patrones
 ¿Qué es un patrón de diseño?
 ¿Por qué usarlos?
 Categorización
 Problema - Patrón
¿Qué es un patrón de diseño?
 Ante un problema reiterado ofrece una
solución contrastada que lo resuelve.
 Describe el problema en forma sencilla.
 Describe el contexto en que ocurre.
 Describe los pasos a seguir.
¿Por qué usarlos?
 Mejora en la comunicación y documentación
 Facilita la documentación interna del proyecto.
 Mejora la ingeniería de software.
 Eleva el nivel del grupo de desarrollo.
 Previene “reinventar la rueda” en diseño
 Son soluciones ya probadas.
 Mejora la calidad y estructura
 “¿Cuan grande debe ser una clase?”
Categorización
 Fundamentales
 Se usan en otros patrones mas grandes
 Creación
 Problemas del proceso de creación de un
objeto.
 Estructura
 Problemas relativos a la composición de
objetos
 Comportamiento
 Relativo a la interacción entre objetos
Problema – Patrón
 Alto acoplamiento
 Façade
 Mediator
 Observer
 Imposibilidad de cambiar la clases
convenientemente



Adapter
Decorator
Visitor
Patrones de creación
 Propósito:


Crear un objeto es una toma de decisión.
Separar los procesos de creación de objeto y
de uso de un objeto.
 Cuales veremos?

Singleton
Singleton
 Problema:


No se puede tener mas de una instancia de
una clase.
Se necesita controlar el acceso a una clase.
Singleton
• Hago que la clase no pueda ser
heredada.
• Agrego una variable estática del
mismo tipo de la clase donde
esta contenida. (instancia)
• Agrego un método estático que
retorne la variable estática.
(GetInstance)
• Agrego el código necesario para
no crear dos instancias en
distintos thread.
ClaseUnica
-instancia : ClaseUnica
-ClaseUnica()
+ObtenerInstancia() : ClaseUnica
+Operacion1()
if (instancia==null)
if (instancia==null)
instancia = new
ClaseUnica();
{
return instancia;
Mutex mutex = new Mutex();
mutex.WaitOne();
if(instancia==null)
instancia = new ClaseUnica();
mutex.Close();
}
return instancia;
Ejemplo de proyecto

Patrón Singleton



Problema: Control de Acceso de Usuarios
Patrón: Singleton (Patrón de creación)
Solución: Controla el acceso a una clase, no
se puede tener mas de una instancia de una
clase.
Agrega una variable estática del mismo tipo de
clase donde esta contenida
Usuario
Id_usuario
Id_emple
Nom_usua
login
asignarContraseña( )
ingresar( )
Patrones de estructura
Propósito:



Desacoplar el sistema.
Obtener una estructura flexible.
Organizar.
 Cuales veremos?

Facade
Facade
 Problemas:



El cliente hace muchos viajes al servidor.
Separe por capas, pero tengo muchas clases
públicas en el servidor para que puedan ser
creadas desde el cliente.
Necesito estructurar las llamadas desde el
cliente.
Facade
Form Cliente
Form Pedidos
Cliente
Form Ctas Corrientes
Presentación
Lógica
Ejemplo de Proyecto

Patrón Business Facade



Problema: Obtención de datos para generar
planilla de sueldos
Patrón: Business Facade (Patrón de
estructura)
Solución: Tiene la característica de “hablarse”
con los diferentes componentes de las capas
de esta arquitectura.
Ejemplo de proyecto

Patrón Business Facade
BF_Planilla
RegistroDescuento( )
RegistroIngresos( )
RegistroPrestamo( )
CalcularSalario( )
Descuento
obtiene
RegistroDescuento( )
Ingresos
obtiene
obtiene
RegistroIngresos( )
Prestamo
RegistroPrestamo( )
Patrones de Comportamiento
Propósito:



Asignación de responsabilidad = Distribuir el
comportamiento.
Comunicación entre instancias.
Se usa mas la composición que la herencia.
 Cuales veremos?


Observer
Data Access Object
Observer
 Intención: Denir una dependencia entre un objeto y
un conjunto de ellos, de modo que los cambios en el
primero se vean reflejados en los otros.
 Problema:
 Mantener distintos objetos relacionados,
generalmente son relaciones 1 – N.
 Mantener las dependencias entre objetos, sin
necesidad de conocer al otro objeto.
Ejemplo de Proyecto

Patrón Observer



Problema: Modificación de la Gestión
Patrón: Observer (Patrón de comportamiento)
Solución: Este patrón utiliza un objeto que
cuando este cambia todos los objetos que los
observan cambian en consecuencia.
Ejemplo de Proyecto
 Patrón Observer
Aguinaldo
Anticipo
Prestamos
Gestión
Ingresos
Descuentos
Notifica modificación
Responde a Notificación
Patrón Data Access Object

Patrón Data Access Object



Problema: Seguridad en la obtención de
información de la base de datos
Patrón: Data Access Object (Patrón de
comportamiento)
Solución: Propone la utilización de un objeto
de acceso a datos para abstraer y encapsular
todos los accesos a fuentes de datos. El DAO
maneja y controla la conexión con la fuente de
datos para obtener y guardar información
solicitada.
Ejemplo de Proyecto

Patrón Data Access Object
DataAccess Object
Planilla
BDSueldos
Encapsular
Uses
Muestra
Repositorio
Descargar

Patrones de Diseño - Calidad del software