Me está costando trabajo encontrar la manera de implementar un patrón de fábrica en un mapeador DTO que intento crear. Estoy bastante seguro de que necesito volver a pensar en mi diseño. Aquí es un ejemplo muy pequeño de lo que estoy corriendo para:Tipo Casting y el patrón Factory
public abstract class Person
{
public string Name { get; set; }
public decimal Salary { get; set; }
}
public class Employee : Person
{
public Employee()
{
this.Salary = 20000;
}
}
public class Pilot : Person
{
public string PilotNumber { get; set; }
public Pilot()
{
this.Salary = 50000;
}
}
public static class PersonFactory
{
public static Person CreatePerson(string typeOfPerson)
{
switch (typeOfPerson)
{
case "Employee":
return new Employee();
case "Pilot":
return new Pilot();
default:
return new Employee();
}
}
}
y utilizar la fábrica:
Person thePilot = PersonFactory.CreatePerson("Pilot");
((Pilot)thePilot).PilotNumber = "123ABC";
cómo consigo alrededor de cargar el número piloto sin typecasting al piloto? ? ¿Es esta la manera incorrecta de hacer esto? Podría poner el número piloto en la clase Person, pero luego Employee heredará el número y eso no es lo que quiero. ¿Que puedo hacer?
Gracias!
-Jackson
Respondiendo las palabras "DTO mapper": http: //automapper.codeplex.com/ –
gracias! esto fue útil! – adminJaxon