У меня есть простая абстрактная реализация Factory:Abstract Factory с Unity
public abstract class ICarFactory{
public abstract ISportsCar CreateSportCar();
public abstract IFamilyCar CreateFamilyCar();
}
public abstract class ISportsCar {
public abstract void Accelerate();
}
public abstract class IFamilyCar {
public abstract void Accelarete();
}
public class BMWFactory : ICarFactory {
public override ISportsCar CreateSportCar() {
return new BMWi7();
}
public override IFamilyCar CreateFamilyCar() {
return new BMWM5();
}
}
public class WolksvagenFactory : ICarFactory {
public override ISportsCar CreateSportCar() {
return new WVGolfR();
}
public override IFamilyCar CreateFamilyCar() {
return new WVGolf();
}
}
public class BMWi7 : ISportsCar {
public override void Accelerate() {
Console.WriteLine(this.ToString() + "accelerated.");
}
}
public class BMWM5 : IFamilyCar {
public override void Accelarete() {
Console.WriteLine(this.ToString() + "accelerated.");
}
}
public class WVGolfR : ISportsCar {
public override void Accelerate() {
Console.WriteLine(this.ToString() + "accelerated.");
}
}
public class WVGolf : IFamilyCar {
public override void Accelarete() {
Console.WriteLine(this.ToString() + "accelerated.");
}
}
клиентский код, как это:
class Program
{
static void Main(string[] args)
{
ISportsCar sportsCar = GetFactory().CreateSportCar();
sportsCar.Accelerate();
}
static ICarFactory GetFactory()
{
string userLocation;
userLocation = "Hamburg"; //Get user location from user settings
if (userLocation == "Hamburg")
{
return new BMWFactory();
}
else
{
return new WolksvagenFactory();
}
}
}
Можно ли достичь работы по "GetFactory()" метод с использованием Microsoft.Practices.Unity?
Прошло много времени, ища эту проблему. Но я не мог найти что-то полезное.
Спасибо, это потрясающе. – fkucuk