Ejemplo del patron MVC, implementando para lograrlo los patrones Observer, Mediator y Singleton