Patrones de diseño vistos desde el punto de vista de c# y de buenas prácticas de programación