Está en la página 1de 1

Consultora

-nombre

+addEmpleado()
+getEmpleadoById()
+getSueldoByEmpleado()
+deleteEmpleado()

Empleado
-nombre
-apellido
-sueldoBasico
+getSueldo()

CategotiaFlyweightFactory

interface
Categoria
+getSueldo()()

+getCategoria()

Tecnico

Funcional

Ninguna

+getSueldo()

+getSueldo()

+getSueldo()

Decorator
+setCategoria()
+getSueldo()

LogDecorator
*

Log
+write()

StrategyLogFactory
+getStrategyLog()

+getSueldo()

StrategyLog
+write()

FileLog
+write()

DataBaseLog
+write()

HelperFile

Aclaraciones:

HelperFile es un facade y
ademas tambin
podra ser un singleton.

+leer()
+escribir()

La consultora es como una fachada, cualquier clase cliente va a utilizar a la consultora, es decir, es
a quien le vamos a pedir un empleado, a quien le vamos a pedir que nos de el sueldo de un
empleado. Luego esta clase es quien se comunica con el resto (subsistemas) para poder realizar
estas operaciones.
Dado que queremos reutilzar los objetos categoria, aplicamos el patrn Flyweight. Lo mismo para
las distintas estrategias.
Debido a que hay empleados que no pertenecen a ninguna categora, se aplic el patron
NullObject.
Todas las factoras utilizadas son singletons ya que queremos que solo exista una factora de cada
una de ellas.
Dado que el sueldo del empleado depende de su categora, se aplic el patrn state.
Como queremos que para algunas categoras ademas de calcular el sueldo, se registre el mismo
en un log, podemos decorar la categora. (este ltimo patron es mas difcil de ver)

También podría gustarte