public void Run() { //llamamos al Abstract Factory que genera la Factory que a su vez crea la familia de Servicios //es decir clases del tipo de Servicio enviado var tipo = Constantes.Constantes.ServiceType.REST_FULL; var abstractFactory = ServiceStackAbstractFactory.createServiceFactory(tipo); //Actualmente el tipo de servicio se pasa al createServiceFactory pero se puede leer ese valor desde //un archivo de configuracion o algo similar y dentro de ServiceStackAbsytractFactory se obtiene el valor, // y se crean los Services pertinentes al valor leido desde la configuracion IEmployeeService employeeService = abstractFactory.getEmployeeService(); IProductService productService = abstractFactory.getProductService(); Console.WriteLine($"::::::::::::::::::: EMPLEADOS ({tipo}) :::::::::::::::::::"); foreach (var employee in employeeService.getEmployee()) { Console.WriteLine($"Empleado:: {employee}"); } Console.WriteLine("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"); Console.WriteLine($"::::::::::::::::::: PRUDCOTS ({tipo}) :::::::::::::::::::"); foreach (var producto in productService.getProducts()) { Console.WriteLine($"Producto:: {producto}"); } Console.WriteLine("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"); }
static void Main(string[] args) { IServiceStackAbstractFactory factory = ServiceStackAbstractFactory.CreateServiceFactory(); IEmployeeService employeeService = factory.GetEmployeeService(); IProductsService productService = factory.GetProductsService(); Console.WriteLine("EmployeeService class > " + typeof(IEmployeeService).Name); Console.WriteLine("ProductService class > " + typeof(IProductsService).Name); Console.WriteLine("getEmployee > " + string.Join("", employeeService.GetEmployee())); Console.WriteLine("getProduct > " + string.Join("", productService.GetProducts())); }